在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的下整数
-
对于范围为1到div-1的i,执行以下操作:
- res:= res + s + 7 * i
- rem:= n模7
-
对于范围为1到rem的i,执行以下操作:
- res:= res + i + div
- 否则,
- 对于范围为1到n的i,执行以下操作:
- res:= res + i
- 对于范围为1到n的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