简单的计数,只要做到不重,不漏,就应该能过了。
下面是代码,因为是厚白数上的例题,所以自己很没谱。
#include<iostream>
using namespace std;
long long ans[10000010];
int main()
{
ans[3]=0;
for(long long i=4;i<=10000010;i++)
ans[i]=ans[i-1]+((i-1)*(i-2)/2-(i-1)/2)/2;
int n;
while(cin>>n)
{
if(n<3) break;
cout<<ans[n]<<endl;
}
return 0;
}
刚开始把for循环写在了while的里面,结果TLE!Orz。然后是把i的定义为int 型,结果是WA,Orz。貌似是相乘的时候有溢出吧。囧!