力扣-1716. 计算力扣银行的钱

简介: Hercy 想要为购买第一辆车存钱。他 每天 都往力扣银行里存钱。最开始,他在周一的时候存入 1 块钱。从周二到周日,他每天都比前一天多存入 1 块钱。在接下来每一个周一,他都会比 前一个周一 多存入 1 块钱。给你 n ,请你返回在第 n 天结束的时候他在力扣银行总共存了多少块钱。
Hercy 想要为购买第一辆车存钱。他 每天 都往力扣银行里存钱。
最开始,他在周一的时候存入 1 块钱。从周二到周日,他每天都比前一天多存入 1 块钱。在接下来每一个周一,他都会比 前一个周一 多存入 1 块钱。
给你 n ,请你返回在第 n 天结束的时候他在力扣银行总共存了多少块钱。
class Solution {
public:
    int totalMoney(int n) {
        if(n <= 7){
            return (1+n)*n/2;
        }else{
            return n/7*28+(0+n/7-1)*(n/7)*7/2+(1+n%7)*(n%7)/2+(n/7)*(n%7);
        }
    }
};

方法:

小于7等差数列1开始到n结束总共n个数,(1+n)*n/2
大于7先考虑整周,一周28也就是n/7*28;
然后考虑整周的增量,第1周增加0,第2周增加7,第3周14,(0+n/7-1) (n/7)7/2
考虑余下的天数,从1到n%7总共n%7个数,(1+n%7)*(n%7)/2
然后考虑余下的天数的增量,第1周后的余数增加1 (n%7),第2周增加2(n%7),第3周3 (n%7),(n/7)(n%7)
目录
相关文章
|
6月前
|
算法 C++
【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题-2
【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题
|
6月前
|
算法 C++
【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题-1
【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题
|
6月前
|
算法 数据挖掘 大数据
深入解析力扣172题:阶乘后的零(计算因子5的方法详解及模拟面试问答)
深入解析力扣172题:阶乘后的零(计算因子5的方法详解及模拟面试问答)
【Leetcode -748.最短补全词 -762.二进制表示中质数个计算置位】
【Leetcode -748.最短补全词 -762.二进制表示中质数个计算置位】
52 0
力扣1873 计算特殊奖金
力扣1873 计算特殊奖金
|
7月前
|
SQL
leetcode-SQL-1440. 计算布尔表达式的值
leetcode-SQL-1440. 计算布尔表达式的值
67 1
|
7月前
|
存储
leetcode:415. 字符串相加(模拟竖式计算)
leetcode:415. 字符串相加(模拟竖式计算)
68 0
|
7月前
leetcode-6116:计算布尔二叉树的值
leetcode-6116:计算布尔二叉树的值
75 0
|
7月前
|
SQL
leetcode-SQL-1873. 计算特殊奖金
leetcode-SQL-1873. 计算特殊奖金
43 0
|
7月前
leetcode-1716:计算力扣银行的钱
leetcode-1716:计算力扣银行的钱
44 0