1005
提交之后部分正确,代码如下:
package com.company; import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); int K=Integer.parseInt(sc.nextLine()); int i,j,r; int[] n=new int[K]; int[] num=new int[K]; ArrayList all=new ArrayList(); //输入待验证的数 for(i=0;i<K;i++) { n[i]=sc.nextInt(); num[i]=n[i]; } for(i=0;i<K;i++) { for(j=0;;j++) { if(n[i]%2==0){ all.add(n[i]/2); n[i]=n[i]/2; } else { if (n[i] == 1) { break; } else { all.add( (3 * n[i] + 1)/2); n[i]=(3 * n[i] + 1)/2; } } } } //输出all //System.out.println(all.toString()); ArrayList some=new ArrayList(); for (r=0;r<K;r++){ //内循环all for (int m=0;m<all.size();m++){ //判断每个待验证的数是否和all中元素相等 if(!all.contains(num[r])){ some.add(num[r]); } break; } } Collections.reverse(some); int sn=0; for (;sn<some.size();sn++){ if (sn==some.size()-1){ System.out.print(some.get(sn)); }else{ System.out.print(some.get(sn)+" "); } } } }
两个测试点错误,扣五分,在main方法前加上@SuppressWarnings("unchecked"),消除编译器输出的提示,还是扣5分,不知道原因。
勿在浮沙筑高台