每日一题(五)


每日一题1716. 计算力扣银行的钱

"""
1716. 计算力扣银行的钱
Hercy 想要为购买第一辆车存钱。他每天都往力扣银行里存钱。
最开始,他在周一的时候存入1块钱。从周二到周日,他每天都比前一天多存入1块钱。在接下来每一个周一,他都会比前一个周一多存入1块钱。
给你n,请你返回在第n天结束的时候他在力扣银行总共存了多少块钱。

示例 1:

输入:n = 4
输出:10
解释:第 4 天后,总额为 1 + 2 + 3 + 4 = 10 。

示例 2:

输入:n = 10
输出:37
解释:第 10 天后,总额为 (1 + 2 + 3 + 4 + 5 + 6 + 7) + (2 + 3 + 4) = 37 。注意到第二个星期一,Hercy 存入 2 块钱。

示例 3:

输入: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 。

"""


class Solution(object):

    def totalnum(self, f, l):
        totalnum = (f + l) * (l - f + 1) / 2
        totalnum = int(totalnum)
        return totalnum
    def totalMoney(self, n):
        """
        :type n: int
        :rtype: int
        """
        total = 0
        if n <= 7:
            total = (1 + n) * n / 2
            total = int(total)
            return total
        else:
            week = int(n / 7 + 1)
            week_array = [i+1 for i in range(week)]
            for i in range(week):
                if i+1 == week_array[-1]:
                    total = total + self.totalnum(week_array[i], week_array[i-1] + n - (i+1-1)*7)
                else:
                    total = total + self.totalnum(week_array[i], week_array[i] + 6)
                print(total)
            return total

if __name__ == '__main__':
    S = Solution()
    total = S.totalMoney(10)
    print(total)

文章作者: 小冷同学
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 小冷同学 !
用户交流区

温馨提示: 遵纪守法, 友善评论!