力扣1716银行的钱

sullay

关注

阅读 56

2022-01-15

class Solution {

public:

    int totalMoney(int n) {

        // 所有完整的周存的钱

        int weekNumber = n / 7;

        int firstWeekMoney = (1 + 7) * 7 / 2;

        int lastWeekMoney = firstWeekMoney + 7 * (weekNumber - 1);

        int weekMoney = (firstWeekMoney + lastWeekMoney) * weekNumber / 2;

        // 剩下的不能构成一个完整的周的天数里存的钱

        int dayNumber = n % 7;

        int firstDayMoney = 1 + weekNumber;

        int lastDayMoney = firstDayMoney + dayNumber - 1;

        int dayMoney = (firstDayMoney + lastDayMoney) * dayNumber / 2;

        return weekMoney + dayMoney;

    }

};

两个基本规则:

1.第二周比前周一多7;

2.计算每周的钱:首日加末日×天数除2;

精彩评论(0)

0 0 举报