题目链接:1005 继续(3n+1)猜想
分析

 找出所有的被“覆盖”的数,然后再将输入的数不在被“覆盖”的数中的添加到“关健数”中。输出前先转成数组并升序排序,降序输出即可。

代码
/**
* Score 25
* Run Time 151ms
* @author wowpH
* @version 1.1
*/ import java.io.BufferedInputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner; public class Main {
public int k; // 待验证的数的个数
public int[] num; // 待验证的数
private List<Integer> ans; // 关键数
private List<Integer> cover; // 被“覆盖”的数 public Main() {
ans = new ArrayList<Integer>();
cover = new ArrayList<Integer>();
input(); // 输入
setCover(); // 计算被“覆盖”的数
setAns(); // 计算关健数
output(); // 输出
} private void input() {
Scanner sc = new Scanner(new BufferedInputStream(System.in));
k = sc.nextInt();
num = new int[k];
for (int i = 0; i < k; i++) {
num[i] = sc.nextInt();
}
sc.close();
} private void setCover() {
for (int i : num) {
while (i > 1) {
if (0 == (i & 1)) {
i /= 2;
} else {
i = (i * 3 + 1) / 2;
}
if (cover.contains(i)) { // i已经被“覆盖”
break;
}
cover.add(i); // 若未覆盖,添加到被“覆盖”的数中
}
}
} private void setAns() {
for (int i : num) {
if (!cover.contains(i)) { // 输入的数,若未被覆盖
ans.add(i); // 则添加到关键数中
}
}
} private void output() {
Object[] arr = ans.toArray();
Arrays.sort(arr); // 升序排序
for (int i = arr.length - 1; i > 0; i--) { // 降序输出
System.out.print(arr[i] + " ");
}
if (arr.length > 0) {
System.out.println(arr[0]); // 最后一个数,换行
}
} public static void main(String[] args) {
new Main();
}
}

PAT(B) 1005 继续(3n+1)猜想(Java)的更多相关文章

  1. PAT 乙级 1005.继续(3n+1)猜想 C++/Java

    1005 继续(3n+1)猜想 (25 分) 题目来源  卡拉兹(Callatz)猜想已经在1001中给出了描述.在这个题目里,情况稍微有些复杂. 当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记 ...

  2. PAT 乙级 1005. 继续(3n+1)猜想 (25)

    1005. 继续(3n+1)猜想 (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B   卡拉兹(Callatz)猜想已经在1001中给出了描述.在这个题目里,情 ...

  3. PAT乙级 1005. 继续(3n+1)猜想 (25)

    1005. 继续(3n+1)猜想 (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 卡拉兹(Callatz ...

  4. [C++]PAT乙级1005. 继续(3n+1)猜想 (25/25)

    /* 1005. 继续(3n+1)猜想 (25) 卡拉兹(Callatz)猜想已经在1001中给出了描述.在这个题目里,情况稍微有些复杂. 当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推 ...

  5. PAT 乙级 1005 继续(3n+1)猜想 (25) C++版

    1005. 继续(3n+1)猜想 (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 卡拉兹(Callatz ...

  6. 【PAT】1005. 继续(3n+1)猜想 (25)

    1005. 继续(3n+1)猜想 (25) 卡拉兹(Callatz)猜想已经在1001中给出了描述.在这个题目里,情况稍微有些复杂. 当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中 ...

  7. PAT 乙级 -- 1005 -- 继续(3n+1)猜想

    题目简述 卡拉兹(Callatz)猜想已经在1001中给出了描述.在这个题目里,情况稍微有些复杂.        当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数.例如 ...

  8. PAT Basic 1005 继续(3n+1)猜想 (25 分)

    卡拉兹(Callatz)猜想已经在1001中给出了描述.在这个题目里,情况稍微有些复杂. 当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数.例如对 n=3 进行验证的时 ...

  9. 1005 继续(3n+1)猜想 (25 分)

    1005 继续(3n+1)猜想 (25)(25 分) - 过期汽水的博客 - CSDN博客https://blog.csdn.net/qq_40167974/article/details/80739 ...

随机推荐

  1. (转)SmartPing:一个服务器Ping值监测工具

    官网:https://docs.smartping.org/ 借鉴:https://www.moerats.com/archives/710/ 说明:之前博主发过一个雨落大神写的Ping值监测工具uP ...

  2. (转)centos7安装telnet服务

    借鉴:https://www.cnblogs.com/daipenglin/p/4934572.html 阅读目录 1 CentOS7.0 telnet-server 启动的问题 场景:在进行Teln ...

  3. (转)glances用法

    借鉴:https://www.ibm.com/developerworks/cn/linux/1304_caoyq_glances/index.html glances 可以为 Unix 和 Linu ...

  4. 【spring源码分析】IOC容器初始化——查漏补缺(五)

    前言:我们知道在Spring中经常使用配置文件的形式对进行属性的赋值,那配置文件的值是怎么赋值到属性上的呢,本文将对其进行分析. 首先了解一个类:PropertySourcesPlaceholderC ...

  5. 关于Linux安装中NAT模式和桥接模式的区别详解

    1.一般我们在创建一个Linux虚拟机时候,会面临三个网络配置选择: 桥接模式.nat模式.host-only模式(主机模式,这个模式用得少,就不介绍了) 2.NAT模式: 所谓nat模式,就是虚拟系 ...

  6. 移动端安卓和 IOS 开发框架 Framework7 布局

    对应的各种效果,Framework7 里面实现的方式比较多,这里我就只写我用的一种,样式有的自己修改了的,想看官方详细的参见 http://framework7.cn 一.手风琴布局Accordion ...

  7. angular中的动态路由

    1.配置动态路由 const routes: Routes = [ {path: 'home', component: HomeComponent}, {path: 'news', component ...

  8. 阶段5 3.微服务项目【学成在线】_day07 课程管理实战_06-课程营销实战分析

    课程营销信息包括课程价格.课程有效期等信息. 课程营销信息使用course_market表存储. 接口我们要提供两个. 接口1先查询课程营销的信息,在页面展示. 接口2:叫做更新,如果发现数据不存在就 ...

  9. bat批处理 查找替换:批处理如何查找并替换文本里特定字符串中的部分内容

    批处理如何查找并替换文本里特定字符串中的部分内容 摘自:http://www.bathome.net/thread-43349-1-1.html 脚本如下: @if()==() echo off &a ...

  10. 阿里fastjson工具类

    package com.common.utils.jsonUtils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JS ...