# [1716. 计算力扣银行的钱](https://leetcode.cn/problems/calculate-money-in-leetcode-bank) [English Version](/solution/1700-1799/1716.Calculate%20Money%20in%20Leetcode%20Bank/README_EN.md) ## 题目描述 <!-- 这里写题目描述 --> <p>Hercy 想要为购买第一辆车存钱。他 <strong>每天</strong> 都往力扣银行里存钱。</p> <p>最开始,他在周一的时候存入 <code>1</code> 块钱。从周二到周日,他每天都比前一天多存入 <code>1</code> 块钱。在接下来每一个周一,他都会比 <strong>前一个周一</strong> 多存入 <code>1</code> 块钱。<span style=""> </span></p> <p>给你 <code>n</code> ,请你返回在第 <code>n</code> 天结束的时候他在力扣银行总共存了多少块钱。</p> <p> </p> <p><strong>示例 1:</strong></p> <pre><b>输入:</b>n = 4 <b>输出:</b>10 <b>解释:</b>第 4 天后,总额为 1 + 2 + 3 + 4 = 10 。 </pre> <p><strong>示例 2:</strong></p> <pre><b>输入:</b>n = 10 <b>输出:</b>37 <b>解释:</b>第 10 天后,总额为 (1 + 2 + 3 + 4 + 5 + 6 + 7) + (2 + 3 + 4) = 37 。注意到第二个星期一,Hercy 存入 2 块钱。 </pre> <p><strong>示例 3:</strong></p> <pre><b>输入:</b>n = 20 <b>输出:</b>96 <b>解释:</b>第 20 天后,总额为 (1 + 2 + 3 + 4 + 5 + 6 + 7) + (2 + 3 + 4 + 5 + 6 + 7 + 8) + (3 + 4 + 5 + 6 + 7 + 8) = 96 。 </pre> <p> </p> <p><strong>提示:</strong></p> <ul> <li><code>1 <= n <= 1000</code></li> </ul> ## 解法 <!-- 这里可写通用的实现逻辑 --> 等差数列。 <!-- tabs:start --> ### **Python3** <!-- 这里可写当前语言的特殊实现逻辑 --> ```python class Solution: def totalMoney(self, n: int) -> int: a, b = divmod(n, 7) return (28 + 28 + 7 * (a - 1)) * a // 2 + (a * 2 + b + 1) * b // 2 ``` ### **Java** <!-- 这里可写当前语言的特殊实现逻辑 --> ```java class Solution { public int totalMoney(int n) { int a = n / 7, b = n % 7; return (28 + 28 + 7 * (a - 1)) * a / 2 + (a * 2 + b + 1) * b / 2; } } ``` ### **C++** ```cpp class Solution { public: int totalMoney(int n) { int a = n / 7, b = n % 7; return (28 + 28 + 7 * (a - 1)) * a / 2 + (a * 2 + b + 1) * b / 2; } }; ``` ### **Go** ```go func totalMoney(n int) int { a, b := n/7, n%7 return (28+28+7*(a-1))*a/2 + (a*2+b+1)*b/2 } ``` ### **...** ``` ``` <!-- tabs:end -->