6 3 5 8 4 2 13 5 8 4 2 15 8 4 2 18 4 2 17 11 17 26 13 20 10 511 17 26 13 20 10 5 #include <stdio.h> #include <stdlib.h> #include"string.h" int main() { int array[101];//n<=100,开一个101的数组就可以了 memset(array,0,sizeof(array)); int n; scanf("%d",&n); for(int i=1;i<=n;i++){ int num; scanf("%d",&num); if(array[num]==0){ array[num]=1; while(num!=1){ if(num%2==0){ num/=2; if(num<=100)//没有这句话,数组会越界 array[num]=-1; } else{ num=(num*3+1)/2; if(num<=100)//同上 array[num]=-1; } } } } int flag=0; for(int j=100;j>=1;j--) if(array[j]==1){ if(flag==0) printf("%d",j); else printf(" %d",j); flag=1; } return 0; }
新闻热点
疑难解答