*PAT_B_1005_Java(25分)
import java.util.Arrays;
import java.util.Scanner;public class Main {public static void main(String []args){Scanner in = new Scanner(System.in);int n =in.nextInt();int temp[]=new int[n]; //存储输入值int arg[][] =new int[n][n]; //存储判断值,当某一列全为0时才是关键值int result[]=new int[n]; //输出结果数组int count=0; //做统计输出空格用int num=0; //result数组的长度for(int i=0;i<n;i++ ){for (int k=0;k<n;k++)arg[i][k]=0; //全部置为0}for(int i=0;i<n;i++){temp[i]=in.nextInt();}for(int i=0;i<n;i++){int S =temp[i];while (S!=1){if(S % 2 == 0){S /= 2;} elseS = (3 * S + 1) / 2;for(int k=0;k<n;k++){if(S==temp[k]){arg[i][k]=1; //当中间值与temp[i](从0到n)的值相同的话,将之置为1}}}}for(int i=n-1;i>=0;i--){arg[i][i]=0; //将对角线全部置为零,自己不能将自己覆盖for(int k=0;k<n;k++){if(arg[k][i]==1)break; //当某一列出现1后,则绝对不是关键值,跳出elseif(k==n-1){result[num]=temp[i]; //当遍历到每一列最后一个值,均为零时,则为关键值,将之存储到result数组中去num++; //数组长度}}}Arrays.sort(result,0,num); //因为输入的数据并不一定是从小到大排列的,并没有这个要求,所以需要需要排列一下for(int i=num-1;i>=0;i--){ //这个操作让我从通过三个到全部通过,同时是从大到小输出。if (count!=0)System.out.print(' ');System.out.print(result[i]);count++;}
}
}
利用map存取数字变到1过程中经历的数字,又因为要倒序输出,所以先对整个数组做一次倒序排序,然后再把map中无法获取到的数输出即为答案
import java.io.IOException;
import java.util.*;public class Main {public static void main(String[] args) throws IOException {Scanner in=new Scanner(System.in);int num=in.nextInt();int[] a=new int[num];List<Integer> list=new ArrayList<>();Map<Integer,Integer> map=new HashMap<>();map.put(1,0);for(int i=0;i<num;i++){a[i]=in.nextInt();getMap(map,a[i]);}Arrays.sort(a);for(int i=a.length-1;i>=0;i--){if(map.get(a[i])==null){list.add(a[i]);}}for(int i=0;i<list.size();i++) {if (i == list.size() - 1) {System.out.print(list.get(i));} else {System.out.print(list.get(i) + " ");}}}public static void getMap(Map map, int element) {while (element != 1) {if (element % 2 == 0) {element = element / 2;} else {element = (3 * element + 1) / 2;}map.put(element, 0);}}
}
*PAT_B_1005_Java(25分)相关推荐
- 12门课100分直博清华!这份成绩单冲上热搜,但学霸小伙也曾考过25分
点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 金磊 明敏 发自 凹非寺 量子位 报道 | 公众号 QbitAI 一 ...
- PTA 7-3 旅游规划 (25分)(双权值Dijkstra最短路)
7-3 旅游规划 (25分) 有了一张自驾旅游路线图,你会知道城市间的高速公路长度.以及该公路要收取的过路费.现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径.如果有若干条路 ...
- PTA 03-树1 树的同构 (25分)
题目地址 https://pta.patest.cn/pta/test/15/exam/4/question/711 5-3 树的同构 (25分) 给定两棵树T1和T2.如果T1可以通过若干次左右 ...
- 【PAT (Advanced Level) Practice】1051 Pop Sequence (25 分)
1051 Pop Sequence (25 分) Given a stack which can keep M numbers at most. Push N numbers in the order ...
- 【PAT (Advanced Level) Practice】1093 Count PAT‘s (25 分)
1093 Count PAT's (25 分) The string APPAPT contains two PAT's as substrings. The first one is formed ...
- 【PAT (Advanced Level) Practice】1149 Dangerous Goods Packaging (25 分)
1149 Dangerous Goods Packaging (25 分) When shipping goods with containers, we have to be careful not ...
- 7-29 修理牧场 (25 分)
7-29 修理牧场 (25 分) 农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数L i 个长度单位,于是他购买了一条很长的.能锯成N块的木头,即该木头的长度是L ...
- 7-18 银行业务队列简单模拟 (25 分)
7-18 银行业务队列简单模拟 (25 分) 设某银行有A.B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 -- 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客.给定到达 ...
- 5-35 城市间紧急救援 (25分) pat 数据结构
题目连接 https://pta.patest.cn/pta/test/15/exam/4/question/862 5-35 城市间紧急救援 (25分) 作为一个城市的应急救援队伍的负责人,你有 ...
最新文章
- 西门子s7-400闭环控制模块_西门子6ES7312-1AE14-0AB0
- [react] React为什么要搞一个Hooks?
- 创建线程的方式_创建线程有几种不同的方式?
- 如何安装python_怎么在Windows操作系统下安装Python和Networkx
- c 语言 封装dll_C#封装YOLOv4算法进行目标检测
- Hibernate(2)
- [codeup 2134] FatMouse's Trade
- JSP内置对象及部分常用方法
- linux环境下 Redis 配置文件
- Git HEAD detached from origin(冲突解决后无法正常push) 问题的解决方案
- canvas绘制表盘时钟
- Anaconda创建Pytorch虚拟环境(排坑详细)
- 驾考计算机播报原理,科目三电子路考流程详解 考驾照的都看看!
- Python 3 《dictionary》入门练习
- CSS Font-awesome字体图标库文件
- firebox插件使用笔记
- Android Studio打地鼠小游戏
- 树的三叉链的创建和遍历
- 安卓四种launchMode的理解
- 英飞凌单片机知乎_如何评价单片机大神郭天祥?
热门文章
- 怎么查看地址值_西门子S7-200 SMART PID回路控制,配置PID向导,查看项目组件
- 使用ab进行压力测试详解
- ios项目icon和default图片命名规则
- 211计算机实力末尾的学校,实力最弱的十所985大学是哪几所?选择末尾985好还是选211好?...
- 关于Android手机CPU不同架构的问题
- selenium对富文本的操作
- 【汇编】汇编学习入门-系列更新20180705
- Kotlin学习笔记(六) 伴生对象 对象表达式
- ODS(Operational Data Store)定义
- 1月份Web服务器份额:Microsoft涨2.32%居亚