1005 继续(3n+1)猜想测试点1 3 4都过不了,不知道哪里出的问题
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int x[10000]={0};
bool cmp(int a, int b) {return a > b;}
void n3(int a){
while(a!=1){
if(a%2==1){
a=(3*a+1)/2;
x[a]=1;
}
else if(a%2==0){
a=a/2;
x[a]=1;
}
}
}
int main(){
int n,a,flag=0;
int k[100]={0};
cin>>n;
for(int i=0;i<n;i++){
cin>>a;
if(!x[a]&&i!=0){
k[flag]=a;
flag++;
n3(a);
}
else if(!x[a]){
n3(a);
}
else{
continue;
}
}
sort(k,k+flag,cmp);
for(int i=0;i<flag-1;i++){
printf("%d ",k[i]);
}
if(k[flag-1]!=0)
cout<<k[flag-1];
}