PAT甲级C语言.1005. 继续(3n+1)猜想

来源:互联网 发布:游戏礼包领取软件 编辑:程序博客网 时间:2024/05/18 15:24
#include<stdio.h>int main(){int i,j,num,k,a[101],length;for(i=0;i<101;++i)a[i]=-1;scanf("%d",&num);for(i=0;i<num;++i){scanf("%d",&k);a[k]=0;}for(i=0;i<101;++i){if(a[i]!=0) continue;else{j=i;while(j!=1){if(j%2==0)j=j/2;elsej=(3*j+1)/2;if(j<=100)   //此处不加if(j<=100)会出现部分测试数据的段错误a[j]=1;}}}for(i=0,length=0;i<101;++i){if(a[i]==0) length++;}for(i=100;i>0;--i){if(a[i]==0){if(length!=1) {--length;    printf("%d",i);    putchar(' ');}else{printf("%d",i);break;}}}return 0;}

0 0