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; } };