hdu 2132

恩。。。这题感觉挺经典的。。。开始wa了一次。。后来一看discuss,才知道原来i的三次方会溢出。然后改对了,代码如下:

#include"stdio.h"



__int64 a[100005],i;

int main( )

{

    int n;

    for(i=1;i<=100000;i++)

    {

        if(i%3==0)

            a[i]=a[i-1]+i*i*i;

        else

            a[i]=a[i-1]+i;

    }

    while(scanf("%d",&n)&&n>=0)

    {

        printf("%I64d\n",a[n]);

    }

    return 0;

}

 

你可能感兴趣的:(HDU)