和poj2000题目基本一样,就是zoj上有要求先输入块数t,且每个输出块间以空行分隔。。。
#include<stdio.h>
int ans[10005];
void f()
{
int i,s,j,k;
ans[0]=0;
for(i=1,j=1;;j+=i,i++)
{
for(k=0;k<i;k++)
ans[k+j]=ans[k+j-1]+i;
if(k+j>10000)break;
}
}
int main()
{
int n,t;
f();
scanf("%d",&t);
while(t--)
{
while(scanf("%d",&n)!=EOF,n)
{
printf("%d %d\n",n,ans[n]);
}
if(t)printf("\n");
}
return 0;
}