PAT Basic Practice 1005

来源:互联网 发布:游戏手柄软件下载 编辑:程序博客网 时间:2024/05/19 02:21
// 题意就是给你一组数 对它进行(3n+1)数的操作【如果不知道出门左转1001】问 这组数中 有多少个数 是其他数 进行(3n+1)操作中没有经过的 
// - -完全没有动脑子= = 暴力统计就好 
//这题目中很愉悦的发现(3n+1)这个游戏的数字在中途会膨胀到很大= =【,b做法活该WA】】具体能到多大?
//转载请注明出处,谢谢 http://blog.csdn.net/woot_the_woot
//还12小时就- -...求不悲剧求RP
#include<stdio.h>#include<math.h>#include<string.h>#include<stdlib.h>int a[21000],f[21000];int n,i,j;int main(){for (i=0;i<=20000;i++)f[i]=-1;scanf("%d",&n);for (i=1;i<=n;i++){scanf("%d",&a[i]);f[a[i]]=0;}for (i=1;i<=n;i++){int t=a[i];while (t!=1){if  (t%2==1){t=(3*t+1);t/=2;f[t]=-1;}else{t=t/2;f[t]=-1;}}}int num;num=0;for(i=100;i>=1;i--){if (f[i]==0){if (num!=0) printf(" ");num++;printf("%d",i);}}return 0;}

0 0