k = int(input())
total = 0
current_group = 1
paid_in_group = 0

for _ in range(k):
    if current_group == paid_in_group:
        current_group += 1
        paid_in_group = 0
    total += current_group
    paid_in_group += 1

print(total)

根据当天获得几个金币进行分组,可以得出:组、每天的金币数、天数都是相同的数字,用 current_group 表示。

第 1 组:1 金币/天 * 1 天

第 2 组:2 金币/天 * 2 天

第 3 组:......

total 表示最终获得的金币数,current_group 表示当前所在组,paid_in_group 表示当前组内已支付的天数。

for _ in range(k) 执行 k 次,即每天执行一次

if current_group == paid_in_group: 如果第 n 组已经支付了 n 天

current_group += 1 切换至下一组

paid_in_group = 0 进入下一组前将已支付天数归零

total += current_group 如果第 n 组支付不足 n 天,增加相应金币数

paid_in_group += 1 当前组已支付天数 +1