国王分金币


国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币......;这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续 N+1天里,每天收到N+1枚金币。
请计算在前K天里,骑士一共获得了多少金币。
输入描述
输入只有1行,包含一个正整数飞 (1K<104),表示发放金币的天数。
输出描述
输出只有1行,包含一个正整数,即骑士收到的金币数。

import os
import sys

# 请在此输入您的代码
k=int(input())   #可用的总天数
i=1    #分金币的次数,第一天给一个金币(一次),第二天两个(第二次)
sum=0
while k>=i:
  sum+=i*i
  k=k-i
  i=i+1

# print(i)
# print(k)
if k !=0:   #假如最后剩10天没用完,此时分到第46次了,原本应该是46天每天46个金币,现在只有10天,所                         以 46*10
  sum=sum+k*i


print(sum)



 

你可能感兴趣的:(python算法,算法)