首页 > 学院 > 开发设计 > 正文

PAT 1005 继续(3n+1)猜想

2019-11-08 18:27:18
字体:
来源:转载
供稿:网友
#include<stdio.h>#include <algorithm>using namespace std;int main(){ int N; int n; int i,j; int number[2][100]; int number2[100]; scanf("%d",&N); for(i=0;i<N;i++){ scanf("%d",&number[0][i]); number[1][i]=1; } for(i=0;i<N;i++){ n=number[0][i]; while(n!=1){ if(n%2==0){ n=n/2; for(j=0;j<N;j++){ if(i!=j){ if(n==number[0][j]) number[1][j]=0; } } } else{ n=(3*n+1)/2; for(j=0;j<N;j++){ if(i!=j){ if(n==number[0][j]) number[1][j]=0; } } } } } for(i=0,j=0;i<N;i++){ if(number[1][i]!=0){ number2[j]=number[0][i]; j++; } } sort(number2,number2+j); for(i=j-1;i>-1;i--){ if(i!=0) PRintf("%d ",number2[i]); else printf("%d",number2[i]); } return 0;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表