题解 | #统计成绩#
[NOIP2015]金币
http://www.nowcoder.com/practice/8f71f5670e6a45118d24d13868a2da9e
求根公式算出n,算出缺少的天数,平方和减去缺少天数的金币数
import math
k = int(input())
# 1加到n大于等于k,n*(n+1)/2 >= k,求根公式算出n
n = math.ceil((math.sqrt(1 + 8 * k) - 1) / 2)
m = (n * (n + 1) // 2 - k) % n # m天后连续n天
num = 0 # 计算1到n的平方和
for i in range(1, n + 1):
num += i ** 2
num -= n * m # 减掉缺少m天的金币数
print(num)