LeetCode Daily 12


2022-1-15 T1716.计算力扣银行的钱

题目描述:

Hercy 想要为购买第一辆车存钱。他 每天 都往力扣银行里存钱。

最开始,他在周一的时候存入 1 块钱。从周二到周日,他每天都比前一天多存入 1 块钱。在接下来每一个周一,他都会比 前一个周一 多存入 1 块钱。

给你 n ,请你返回在第 n 天结束的时候他在力扣银行总共存了多少块钱。

示例:

输入:n = 20
输出:96
解释:第 20 天后,总额为 (1 + 2 + 3 + 4 + 5 + 6 + 7) + (2 + 3 + 4 + 5 + 6 + 7 + 8) + (3 + 4 + 5 + 6 + 7 + 8) = 96

思路:

先计算出整周(为7天)时存入的钱,再计算剩余天数的存入钱数。

代码:

class Solution {
public:
    int totalMoney(int n) {
        int res = 0;
        for(int i = 0; i < n / 7; i++) {
            res += (countSum(7) + 7 * i);
        }
            res += (countSum(n % 7) + (n / 7) * (n % 7));
        return res;
    }
    
    int countSum(int n) {
        int sum = 0;
        for(int i = 1; i <= n; i++) {
            sum += i;
        }
        return sum;
    }
};