PAT 1005继续(3n+1)猜想 (25)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PAT 1005继续(3n+1)猜想 (25)相关的知识,希望对你有一定的参考价值。
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)的主要内容,如果未能解决你的问题,请参考以下文章