一道ACM关于Triangles的题
请看下我的算法是否有问题谢谢#include<stdio.h>
void main()
{
int i;
int j;
int a[2000]={0};
int num=0;
for(i=0;i<2000;i++)
{
scanf("%d",&a[i]);
while(a[i]!=0)
{
int flag=0;
for(j=1;;j++)
{
int m=0,sum=0;
if(a[i]==(j*(j+1))/2)
{
flag=1;
break;
}
if(a[i]>(j*(j+1))/2)
{
break;
}
}
if(flag)
{
int m=0,sum=0;
int k;
printf("%d is a triangular number.\n",a[i]);
for(k=1;;k++)
{
sum+=k;
if(sum<a[i])
m++;
if(sum==a[i])
break;
}
for(k=0;k<=m;k++)
{
printf("*");
}
printf("\n");
break;
}
else
printf("%d is not a triangular number.\n",a[i]);
break;
}
break;
}
}