#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
int a[n],b[101]={0},c[101]={0};
for(int i=0;i<n;i++){
cin>>a[i];
c[a[i]]=1;//记录输入数据,最后从大到小查询
}
for(int i=0,t;i<n;i++){
t=a[i];
while(t!=1){
if(t%2==0) t/=2;
else t=(3*t+1)/2;
if(t>1&&t<=100)
if(b[t]) break;//之前已计算过直接跳过
else b[t]++;
}
}
int flag=0;
for(int i=100;i>1;i--)
if(b[i]==0&&c[i]){//如果没有记录且在输入数据中
if(flag++) cout<<' ';
cout<<i;
}
return 0;
}
PAT乙级 1005 继续(3n+1)猜想 (模拟)
最新推荐文章于 2024-07-03 15:53:48 发布