1005 继续(3n+1)猜想 (25 分)

    xiaoxiao2025-05-31  109

    #include<bits/stdc++.h> using namespace std; int main() { int K; cin>>K; int data[K]; int a[K]={0}; for(int i=0;i<K;i++) cin>>data[i]; int temp; for(int i=0;i<K;i++){ temp=data[i]; if(data[i]%2==0){ while(temp!=1){ if(temp%2==0) temp=temp/2; else temp=(3*temp+1)/2; for(int j=0;j<K;j++){ if(temp==data[j]) a[j]=1; } } } else{ while(temp!=1){ if(temp%2==0) temp=temp/2; else temp=(3*temp+1)/2; for(int j=0;j<K;j++){ if(temp==data[j]) a[j]=1; } } } } int d[K]; int t=0; for(int i=0;i<K;i++){ if(a[i]==0){ d[t++]=data[i]; } } sort(d,d+t); for(int i=t-1;i>0;i--){ cout<<d[i]<<" "; } cout<<d[0]; return 0; }
    最新回复(0)