| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
对上面的修正In Reply To:公式很容易推导啊 Posted by:peterdi at 2008-12-09 14:14:35 > // 公式
> // 1 2 3 4 5 6 7 8 9 10...
> // 1 2 2 3 3 3 4 4 4 4...
> // 对任意的day coinnum=1*1+2*2+3*3+...
> // 所以得到day=n*(n+1)/2
> // 由day求出n 判断n*(n+1)/2与day的关系
> // 若相等则 coinnum=1*1+2*2+3*3+..+n*n=n*(n+1)*(2*n+1)/6//这里因该为6
> // 若不等则 coinnum+=(day-n*(n+1)/2)*(n+1)//应该加括号的。
> // o(1)
代码如下:
#include <stdio.h>
int main(int argc, char* argv[])
{
int day,sum,k;
while(scanf("%d",&day)&&day!=0)
{
sum=0;
k=1;
while((k+2)*(k+1)/2<day)
k++;
sum=k*(k+1)*(2*k+1)/6;
sum+=(day-k*(k+1)/2)*(k+1);
printf("%d %d\n",day,sum);
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator