Giả sử bạn đặt 1R vào một ngân hàng vào ngày đầu tiên, chẳng hạn như thứ Hai. Và mỗi ngày từ ngày hôm sau, từ Thứ Ba đến Chủ Nhật, bạn đặt thêm 1Rs so với ngày hôm trước. Và vào mỗi thứ Hai tiếp theo, bạn sẽ đặt nhiều hơn 1Rs so với thứ Hai trước đó. Nếu chúng ta có số n, chúng ta phải tìm tổng số tiền bạn sẽ có trong ngân hàng vào cuối ngày thứ n.
Vì vậy, nếu đầu vào là n =17, thì đầu ra sẽ là 75 bởi vì, đặt 1Rs vào thứ Hai, 2Rs vào thứ Ba, v.v., vì vậy 7Rs vào Chủ nhật, sau đó vào thứ Hai tiếp theo đặt 2Rs, vào thứ hai thứ Ba đặt 3Rs, vì vậy vào Chủ nhật đặt 8Rs. Sau đó vào thứ ba thứ ba đặt 3Rs, thứ ba đặt 4Rs và thứ tư (ngày cuối cùng) đặt 5Rs, do đó tổng cộng là (1 + 2 + 3 + 4 + 5 + 6 + 7) + (2 + 3 + 4 + 5 + 6 + 7 + 8) + (3 + 4 + 5) =75R
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
-
s:=28
-
res:=0
-
nếu n> 7 thì
-
res:=s
-
div:=tầng của n / 7
-
đối với tôi trong phạm vi 1 đến div - 1, thực hiện
-
res:=res + s + 7 * i
-
-
rem:=n mod 7
-
đối với tôi trong phạm vi 1 đến rem, hãy làm
-
res:=res + i + div
-
-
-
nếu không,
-
đối với tôi trong phạm vi từ 1 đến n, hãy thực hiện
-
res:=res + i
-
-
-
trả lại res
Ví dụ (Python)
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
def solve(n): s = 28 res = 0 if n>7: res = s div = n//7 for i in range(1,div): res += s+7*i rem = n % 7 for i in range(1,rem+1): res += i+div else: for i in range(1,n+1): res+=i return res n = 17 print(solve(n))
Đầu vào
17
Đầu ra
75