Java - PAT - 1005. 继续(3n+1)猜想 (25)
来源:互联网 发布:大数据系统架构图 编辑:程序博客网 时间:2024/06/04 23:40
题目地址:1005. 继续(3n+1)猜想 (25)
思路:
输入数时,验证猜想,把过程中的数都读入一个数组,当然如果数组中已经存在,就不必继续添加。当这些数都添加后,遍历输入的数组,把过程数中没有的数挑出来,也就是关键数。简单点说,把这些数字都进行一次验证,过程所产生的所有的数字就是被覆盖的数字。那没被覆盖的数字就是关键数字。
import java.util.ArrayList;import java.util.Collections;import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt();int[]a1 = new int[n];//进行操作的数组int[]a2 = new int[n];ArrayList<Integer>alist1 = new ArrayList<Integer>();//被覆盖数ArrayList<Integer>alist2 = new ArrayList<Integer>();//关键数 for(int i=0 ;i<n ;i++){a2[i] = sc.nextInt();a1[i] = a2[i]; while(a1[i]!=1){//将覆盖数添加到alist1中if(a1[i]%2==0){a1[i] /=2;if(!alist1.contains(a1[i])){alist1.add(a1[i]);}else{break;}}else{a1[i] = (3*a1[i]+1)/2;if(!alist1.contains(a1[i])){alist1.add(a1[i]);}else{break;}}}} for(int i=0 ;i<a2.length ;i++){//遍历输入的数组 if(!alist1.contains(a2[i])){//在覆盖数中没有的话alist2.add(a2[i]);//添加到alist2 即关键数}} Collections.sort(alist2);if(alist2.size()==1){System.out.println(alist2.get(0));}else{for(int i=alist2.size()-1 ;i>=0 ;i--){System.out.print(alist2.get(i));if(i!=0){System.out.print(" ");}}System.out.println();}}}
其实代码就是那么写字母,学一阵子就差不多都掌握了,主要是思路,训练好思维很重要,比如说这道题让求关键数字,要知道关键数就是没被覆盖的数字。直接求没被覆盖的数字不好求又或者不能求的话,那就从另一面考虑,先求出被覆盖的数字,那么剩下的数字就是没被覆盖的数字。
3 0
- PAT 1005. 继续(3n+1)猜想 (25) ;JAVA实现
- Java - PAT - 1005. 继续(3n+1)猜想 (25)
- PAT 1005. 继续(3n+1)猜想 (25) java
- PAT 乙级1005.继续(3n+1)猜想(JAVA版)
- PAT 1005. 继续(3n+1)猜想
- PAT 1005. 继续(3n+1)猜想
- PAT 1005. 继续(3n+1)猜想
- pat 1005. 继续(3n+1)猜想
- PAT 1005. 继续(3n+1)猜想
- PAT 1005. 继续(3n+1)猜想
- PAT 1005. 继续(3n+1)猜想
- PAT 1005. 继续(3n+1)猜想
- PAT Basic Level 1005. 继续(3n+1)猜想 (25)
- PAT 1005. 继续(3n+1)猜想 (25)
- PAT - 1005. 继续(3n+1)猜想 (25)
- 编程题目:PAT 1005. 继续(3n+1)猜想 (25)
- PAT 1005. 继续(3n+1)猜想 (25)
- PAT(B)1005. 继续(3n+1)猜想 (25)
- 今天下了场好大的雨
- C语言实现一个简单的词法分析器
- 【BZOJ2440】完全平方数,莫比乌斯反演+二分答案+容斥思想
- CodeForces 300AArray
- 【MyBatis框架点滴】——MyBatis开发DAO的两种方法:原始DAO开发方法和Mapper代理方法
- Java - PAT - 1005. 继续(3n+1)猜想 (25)
- 持久化对象的 四种状态
- 使用jsoup采集网页实例
- Problem3-总结报告
- Androin学习笔记五十九:Android横竖屏切换总结
- 【总结】如何利用云平台构建容错的APP
- 用pandas分析百万电影数据
- Hdu-5344 MZL's xor
- 页面表格的绘制