Skip to main content
Back to problems
#1716
Easy Algorithms

Calculate money in leetcode bank

Math
82.3% acceptance
Feb 25, 2026
1834
64
Hercy wants to save money for his first car. He puts money in the Leetcode bank every day. He starts by putting in $1 on Monday, the first day. Every day from Tuesday to Sunday, he will put in $1 more than the day before. On every subsequent Monday, he will put in $1 more than the previous Monday. Given n, return the total amount of money he will have in the Leetcode bank at the end of the nth day.

Solution

Rust
Time O(1)
Space O(1)
LeetCode
solution.rs
impl Solution {
  pub fn total_money(n: i32) -> i32 {
    let n = n as i32;
    let full_weeks = n / 7;
    let rem = n % 7;
    // Sum of full weeks: week w (1-indexed) has days w, w+1, ..., w+6
    // Sum for week w = 7w + (0+1+2+3+4+5+6) = 7w + 21
    // Total for W weeks = sum_{w=1}^{W} (7w + 21) = 7*W*(W+1)/2 + 21*W
    let full_sum = 7 * full_weeks * (full_weeks + 1) / 2 + 21 * full_weeks;
    // Remaining days: week (full_weeks+1), days 1..rem
    // Day d of week w has value w + d - 1 (w = full_weeks+1, d = 1..rem)
    // sum = rem * (full_weeks + 1) + rem*(rem-1)/2... wait: full_weeks+1 + (full_weeks+2) + ... + (full_weeks+rem)
    // = rem*(full_weeks+1) + 0+1+...+(rem-1) = rem*(full_weeks+1) + rem*(rem-1)/2
    let rem_sum = rem * (full_weeks + 1) + rem * (rem - 1) / 2;
    full_sum + rem_sum
  }
}