您的位置:首页 > 其它

HDU 2132 An easy problem

2014-04-15 19:45 309 查看


[align=left]Problem Description[/align]
We once did a lot of recursional problem . I think some of them is easy for you and some if hard for you.

Now there is a very easy problem . I think you can AC it.

We can define sum(n) as follow:

if i can be divided exactly by 3 sum(i) = sum(i-1) + i*i*i;else sum(i) = sum(i-1) + i;

Is it very easy ? Please begin to program to AC it..-_-

[align=left]Input[/align]
The input file contains multilple cases.

Every cases contain only ont line, every line contains a integer n (n<=100000).

when n is a negative indicate the end of file.

[align=left]Output[/align]
output the result sum(n).

[align=left]Sample Input[/align]

1
2
3
-1


[align=left]Sample Output[/align]

1
3
30


[align=left] 很容易想到先递推打表,有个坑,i也要用64位,不然i*i*i会溢出,需要特别注意。[/align]

#include<stdio.h>
#include<string.h>
__int64 f[100005],i,n;  //i也要64位
int main()
{
memset(f,0,sizeof(f));
f[1]=1;
for(i=2; i<=100002; i++)
if(i%3==0) f[i]=f[i-1]+i*i*i;
else f[i]=f[i-1]+i;
while(~scanf("%I64d",&n) && n>=0) {
printf("%I64d\n",f
);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: