您的位置:首页 > 其它

HDU 2132 An easy problem

2014-04-23 14:07 369 查看
Problem Description

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..-_-

Input

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.

Output

output the result sum(n).

Sample Input

1
2
3
-1


Sample Output

1
3
30


题目没什么好说的,思路很简单,打表。注意一个问题:i*i*i 可能会超int ,所以 i 必须定义 long long 。

#include<stdio.h>
#include<string.h>
__int64 f[100005],i,n;
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;    //此处 i 必须是__int64,不然会WA
else f[i]=f[i-1]+i;
while(~scanf("%I64d",&n) && n>=0) {
printf("%I64d\n",f
);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: