http://poj.org/problem?id=2000
我承认我的写法略坑爹,看代码思路应该也好懂,好歹这里全都是我自己原创的吧#- -。。。
#include<stdio.h> const int MAX=141; int a[MAX]; int main(void) { int i,j,k,n,t,sum; for(i=1;i<MAX;i++) a[i]=i*(i+1)/2; while(scanf("%d",&n),n) { sum=0; for(i=1;i<MAX;i++) if(a[i]>=n) break; j=n-a[i-1]; for(k=1;k<i;k++) sum+=k*k; sum+=j*i; printf("%d %d\n",n,sum); } return 0; }