Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình tìm tổng tiền trong ngân hàng sau n ngày trong Python

Giả sử bạn gửi 1Rs vào ngân hàng ngày thứ nhất (Thứ Hai). Mỗi ngày tiếp theo từ Thứ Ba đến Chủ Nhật, bạn gửi thêm 1Rs so với ngày trước. Và mỗi Thứ Hai sau đó, bạn gửi thêm 1Rs so với Thứ Hai trước. Cho số n, tìm tổng tiền trong ngân hàng vào cuối ngày thứ n.

Ví dụ: n = 17, kết quả là 75 vì:

  • Tuần 1: 1+2+3+4+5+6+7 = 28
  • Tuần 2: 2+3+4+5+6+7+8 = 35
  • Tuần 3 (3 ngày): 3+4+5 = 12
  • Tổng = 75

Giải thuật

  1. s := 28 (tổng tuần đầu)
  2. res := 0
  3. Nếu n > 7:
    • res := s
    • div := n // 7
    • For i từ 1 đến div - 1: res += s + 7*i
    • rem := n % 7
    • For i từ 1 đến rem: res += i + div
  4. Ngược lại: For i từ 1 đến n: res += i
  5. Trả về res

Ví dụ (Python)

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))

Input

17

Output

75