Python程序:计算银行存款总额


假设你在第一天(周一)存入银行1卢比。从第二天(周二)到周日,你每天都比前一天多存1卢比。每个后续的周一,你都比上一个周一多存1卢比。如果我们有一个数字n,我们必须找到在第n天结束时你将在银行里拥有的总金额。

所以,如果输入像n = 17,那么输出将是75,因为,周一存入1卢比,周二存入2卢比,依此类推,周日存入7卢比,然后下一个周一存入2卢比,第二个周二存入3卢比,依此类推,周日存入8卢比。然后第三个周一存入3卢比,周二存入4卢比,周三(最后一天)存入5卢比,所以总和是(1+2+3+4+5+6+7)+(2+3+4+5+6+7+8)+(3+4+5)= 75卢比。

为了解决这个问题,我们将遵循以下步骤:

  • s := 28

  • res := 0

  • 如果 n > 7,则

    • res := s

    • div := n / 7 的向下取整

    • 对于 i 从 1 到 div - 1,执行

      • res := res + s + 7 * i

    • rem := n 模 7

    • 对于 i 从 1 到 rem,执行

      • res := res + i + div

  • 否则,

    • 对于 i 从 1 到 n,执行

      • res := res + i

  • 返回 res

示例(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))

输入

17

输出

75

更新于: 2021年5月18日

496 次浏览

开启你的职业生涯

完成课程并获得认证

立即开始
广告