题解 P2669 【金币】
pascal:
program jinbi;
var k,n:longint; i,j,q:longint;
procedure search(i:longint);
begin
j:=i;
while j>k do dec(j); //如果剩余天数小于j天,则递减j
n:=n+i*j; //统计j天获得钱数,i表示每天给的钱币数
q:=j; //过去天数
k:=k-q; //减去给过的天数
if k=0 then exit; //钱币给完
search(i+1); //没给完则继续递归
end;
begin
readln(k);
i:=1; n:=0; q:=0; //初始化
search(i);
writeln(n); //输出金币数
end.