精華區beta Marginalman 關於我們 聯絡資訊
https://leetcode.com/problems/calculate-money-in-leetcode-bank/description/ 1716. Calculate Money in Leetcode Bank 給你一個數字n表示存錢幾天,我們從星期一開始存錢,第一次存1元,後面每次多存 一元,直到下禮拜一時改存上禮拜存的錢+1數量的錢後面以此類推,求出存錢n天後 我們可以存多少錢。 思路: 1.第一個禮拜會存28元,第二個禮拜會存35元,每個禮拜多存7元所以是一個等差數列 ,把存的錢分成三部份:每個禮拜存的基底(28) + 每個禮拜多出來的錢(7*n-1) + 最後一個禮拜不滿七天的錢 2.上面三個部份都可以看做一個等差數列和,套公式就完事了。 Java Code: ----------------------------------------------- class Solution { public int totalMoney(int n) { int x = n / 7; int y = n % 7; int week = 28 * x; int offset = 7 * (x - 1) * x / 2; int remain = (x + 1 + x + y) * y / 2; return week + offset + remain; } } ----------------------------------------------- -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.100.73.13 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1701836430.A.A21.html
leafff: 大師 12/06 17:19