#include<iostream>
#define N 1005
int n;
int nar[N];
int ar[N];
int out[N];
int tmp;
int idx;
int main()
{
while (std::cin>>n&&n){
for(int i=0;i!=n;i++){
std::cin>>tmp;
nar[i]=tmp;
ar[tmp]=1;
}
for(int i=0;i!=N;i++){
tmp=i;
if(ar[i]!=0){
while (tmp!=1){
if((tmp&1)==0){
tmp/=2;
}else{
tmp=(tmp*3+1)/2;
}
if(tmp<N){
ar[tmp]=0;
}
}
}
}
for(int i=n-1;i>=0;i--){
if(ar[nar[i]]==1){
out[idx++]=nar[i];
}
}
for(int i=0;i!=idx;i++){
std::cout<<out[i];
if(i!=idx-1){
std::cout<<" ";
}
}
std::cout<<std::endl;
idx=0;
memset(out,0,sizeof(out));
memset(nar,0,sizeof(nar));
memset(ar,0,sizeof(ar));
}
}HDU-3784继续xxx定律
最新推荐文章于 2020-04-28 17:16:44 发布

这是一个使用C++编写的程序,主要功能是对输入的一系列整数进行处理。程序首先读取整数的数量,然后读取这些整数并存储在一个数组中。接下来,程序检查每个整数是否可以通过特定的数学操作达到1,并将可以达到1的整数输出。
597

被折叠的 条评论
为什么被折叠?



