1. 程式人生 > >PAT 1005繼續(3n+1)猜想 (25)

PAT 1005繼續(3n+1)猜想 (25)

string stat int() bool spa check logs log pan

import java.util.Arrays;
import java.util.Scanner;
public class Main7 {
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int a=0;int b=0;
        int[] data = new int[n];
        boolean[] check = new boolean[n];
        int
i=0;int j=0; for(i=0;i<n;i++){ data[i]=in.nextInt(); } in.close(); int cnt=0; int tmp=0; for(i=0;i<n-1;i++){ for(j=i;j<n;j++){ if(data[i]>data[j]){ tmp=data[j]; data[j]
=data[i]; data[i]=tmp; } } } for(i=0;i<n;i++){ check[i]=false; } for(i=0;i<n;i++){ a=data[i]; while(a!=1){ if(a%2==0){ a=a/2;
for(j=0;j<n;j++){ if(check[j]||j==i){ continue; } else{ if(data[j]==a){ check[j]=true; break; } } } } else{ a=(3*a+1)/2; for(j=0;j<n;j++){ if(check[j]||j==i){ continue; } else{ if(data[j]==a){ check[j]=true; break; } } } } } } for(i=n-1;i>0;i--){ if(!check[i]){ cnt++; } } if(n==1){ System.out.print(data[0]); } else{ for(i=n-1;i>=0;i--){ if(!check[i]){ cnt--; System.out.print(data[i]); if(cnt>0){ System.out.print(" "); } } } } } }

PAT 1005繼續(3n+1)猜想 (25)