数学问题,不晓得哪里错了 求大神赐教
题目:Description
已知集合A定义如下:
(1)1属于A,2属于A;
(2)若x和y都属于A则2x+3y也属于A;
(3)再无其他数属于A。
试求集合A中元素从小到大排列的序列的前n项。
Input
有多组测试,每组输入一个正整数n(n<=1000)。
Output
输出集合A中符合题意的前n项,输出格式如样例。
Sample Input
1
2
3
Sample Output
1->end
1->2->end
1->2->5->end
my code:
#include<stdio.h>
#include<stdlib.h>
int cmp(const void *a,const void *b)
{
return *((int *)a)-*((int *)b);
}
int s[1001]={1,2};
int main()
{
int n,i,j1,j2,t,nb2=0,nb1=2,na=2,k,glap,x;
while(na<=1000)
{
nb1=na;k=0;
for(i=0;i<nb1;i++)
{
for(j1=nb2;j1<nb1;j1++)
{
glap=1;
t=2*s[i]+3*s[j1];
for(j2=nb2;j2<nb1+k;j2++)
if(t==s[j2]){glap=0;break;}
if(glap==1){k++;s[na++]=t;if(na>1000){x=1;break;}}
}
if(x==1)break;
}
if(x==1)break;
nb2=nb1;
}
qsort(s,1001,sizeof(s[0]),cmp);
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
printf("%d->",s[i]);
printf("end\n");
}
return 0;
}
样例可以弄出来 但是是WA 大神看看贝