1005

    xiaoxiao2021-03-25  57

    #include<iostream> #include<cstdio> #include<algorithm> #include<string.h> using namespace std; #define N 10000 int ans[N],j=1; int a[N],z[N]; int main() { int n; memset(a,0,sizeof(a)); scanf("%d",&n); for(int i=1;i<=n;i++) { int k; scanf("%d",&k); z[i]=k; if(a[k]==1) continue; while(k!=1) { if(k%2==1) { k=(3*k+1)/2; a[k]=1; } else { k=k/2; a[k]=1; } } } sort(z+1,z+1+n); for(int i=n;i>=1;i--) { if(a[z[i]]==0) ans[j++]=z[i]; } for(int i=1;i<(j-1);i++) { printf("%d ",ans[i]); } printf("%d\n",ans[j-1]); return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-34553.html

    最新回复(0)