#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,i=1,j;
int* a=NULL;
scanf("%d",&n);
j=n;
while (n!=1) {
a=(int* )realloc(a,(i+1)*sizeof(int));
a[0]=j;
if (n%2==0) {
a[i]=n/2;
} else {
a[i]=n*3+1;
}
n=a[i];
i++;
}
for (j=i-1;j>-1;j--) {
printf("%d ",a[j]);
}
free(a);
return 0;
}
动态分配内存真的不如直接开一个大数组嘛