#include<stdio.h>
int b[100000];
int main()
{
int a,j=0,i;
scanf("%d",&a);
while(1)
{
if(a==1)
break;
else
{
if(a%2==0)
{
a=a/2;
}
else
{
a=a*3+1;
}
}
a=b[j];
j++;
}
for(i=j-1;i>=0;i--)
{
printf("%d ",b[i]);
}
return 0;
}
#include<stdio.h>
int b[100000];
int main()
{
int a,j=0,i;
scanf("%d",&a);
while(1)
{
if(a==1)
break;
else
{
if(a%2==0)
{
a=a/2;
}
else
{
a=a*3+1;
}
}
b[j]=a;//这里出错了
j++;
}
for(i=j-1;i>=0;i--)
{
printf("%d ",b[i]);
}
return 0;
}
修改如下,供参考:
#include<stdio.h>
int b[100000];
int main()
{
int a, j = 0, i;
scanf("%d", &a);
while (1)
{
if (a == 1) {
b[j++] = a;
break;
}
else
{
b[j++] = a;
if (a % 2 == 0)
{
a = a / 2;
}
else
{
a = a * 3 + 1;
}
}
}
for (i = j - 1; i >= 0; i--)
{
printf("%d ", b[i]);
}
return 0;
}