继续xxx定律

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2909    Accepted Submission(s): 836

Problem Description
当n为3时,我们在验证xxx定律的过程中会得到一个序列,3,5,8,4,2,1,将3称为关键数,5,8,4,2称为覆盖数。现在输入n个数字a[i],根据关键数与覆盖数的理论,我们只需要验证其中部分数就可以确定所有数满足xxx定律,输出输入的n个数中的关键数。如果其中有多个关键数的话按照其输入顺序的逆序输出。
Input
输入数据包含多个用例,每个用例首先包含一个整数n,然后接下来一行有n个整数a[i],其中:
1<=n<=500
1<a[i]<=1000
Output
请计算并输出数组a中包含的关键数,并按照其输入顺序的逆序输出,每个用例输出占一行。
Sample Input
3 3 8 4 5 3 8 4 7 15 5 3 8 4 15 7 0
Sample Output
3 15 7 3 7 15 3
Source
浙大计算机研究生复试上机考试-2009年
Recommend
notonlysuccess   |   We have carefully selected several similar problems for you:  3786 4008 1325 1881 1880 

感受被赵同学支配的恐惧吧:

package com.it.method;

import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
import java.util.Stack;
/*
 * 送一组测试数据 10 
 * 1 2 3 4 5 6 7 8 9 10
 * 输出9 6
 * 所以后边就不用解释了
 */
//public class Main {
public class Test03
{
public static void main(String args[])
{
Scanner cin = new Scanner(System.in);
while(cin.hasNext())
{
int m = cin.nextInt();
if(m==0)
break;
int a[]= new int[m];
List<Integer>q = new LinkedList<Integer>();//创建一个list集合
Stack<Integer>s = new Stack<Integer>();//创建一个 栈
for(int i=0;i<m;i++)
{
a[i] = cin.nextInt();//读入数据
int n=a[i];
if(!q.contains(n))//如果集合里边还没有n那么 一定要检测n
s.push(n);
else//如果已经 有了  下边就不需要进行了
continue;
while(n!=1)
{
//q.add(n);// 有重复数据,所以这一行  要放在 下边
if(n%2==1)
n=(n*3+1)/2;
else
n/=2;
q.add(n);
}
}
int ans[] = new int [1100];//详情 看前边注释,是检测最少的 
int cnt=0;
while(!s.isEmpty())
{
if(!q.contains(s.peek()))
ans[cnt++] = s.peek();
s.pop();
}
for(int i=0;i<cnt-1;i++)
System.out.print(ans[i]+" ");
System.out.println(ans[cnt-1]);
s.clear();
q.clear();
}
cin.close();
}

}

java 杭电3784继续xxx定律 栈的使用相关推荐

  1. hdu 3784 继续xxx定律

    当n为3时,我们在验证xxx定律的过程中会得到一个序列,3,5,8,4,2,1,将3称为关键数,5,8,4,2称为覆盖数.现在输入n个数字a[i],根据关键数与覆盖数的理论,我们只需要验证其中部分数就 ...

  2. java 杭电1237简单计算器

    简单计算器 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  3. 过山车java,杭电 acm 2063 ( 过山车 )

    Problem Description RPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了.可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女生必须找个个男生 ...

  4. java最简单的并查集(不想交集合)以及杭电1272

    并查集要有的一些属性:value:表示当前值,指针:(不一定是指针)指向父节点. 还有一个属性number:表示该树存在的总个数.(也可以用深度表示).我用小树插在大树上. 如果是普通数字表示的树,可 ...

  5. 用java爬取杭电oj已ac代码

    前言 电脑的硬盘突然坏了,新安装的eclipse的代码全没了,后来发现杭电上已经ac的代码可以查看到,我是个有强迫症的人,我宁愿做很多件不同的事也不愿意做一件相同的事(复制黏贴)许多次,所以就突发奇想 ...

  6. 杭电1430康托 bfs(java)

    魔板: Problem Description 在魔方风靡全球之后不久,Rubik先生发明了它的简化版--魔板.魔板由8个同样大小的方块组成,每个方块颜色均不相同,可用数字1-8分别表示.任一时刻魔板 ...

  7. 杭电1728bfs逃离迷宫java实现

    Problem Description 给定一个m × n (m行, n列)的迷宫,迷宫中有两个位置,gloria想从迷宫的一个位置走到另外一个位置,当然迷宫中有些地方是空地,gloria可以穿越,有 ...

  8. 杭电1284钱币兑换问题—背包dp/母函数(java)

    Problem Description 在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法.请你编程序计算出共有多少种兑法. Input 每行只有一个正整数N,N小于32768. Out ...

  9. 杭电oj1087最长递增子序列java实现

    1087链接 要求最长递增子序列和.代码如下: import java.util.Scanner;public class 杭电oj1087 {public static void main(Stri ...

最新文章

  1. 网狐棋牌客户端连接服务器修改方法6,网狐游戏服务器 客户端连接
  2. if语句和缩进部分是一个完整的代码块
  3. Codeup墓地-问题 A: 最长上升子序列
  4. chromebook刷机_如何将网站添加到您的Chromebook架子上
  5. hibernate在分层架构中修改数据(update)时遇到的问题!!
  6. 信息学奥赛C++语言:统计正数
  7. 成功加入微软GDI计划
  8. [译]CSS3实现柱状图的3D立体动画效果
  9. 下血本买的!2021Java高级面试题
  10. linux 64 mysql下载官网_Linux下安装MySQL5.7
  11. Unity 利用FFmpeg实现录屏、直播推流、音频视频格式转换、剪裁等功能
  12. 解析接口中的JSON数据
  13. HCIP 3-4月考试战报
  14. Mdict to macOS Dictionary转换笔记
  15. 天涯明月刀java_天涯明月刀61副本 天涯明月刀副本详情介绍
  16. android修改shell串口号,[Note] 2021-01-15 Android shell/串口中使用 wpa_cli 连接Wi-Fi
  17. Mysql数据库内的索引操作【重点】
  18. 非线性相关系数 matlab,matlab多元非线性回归系数的确定
  19. CRM 客户管理系统C#源码
  20. 一个高速公路交警的救命忠告

热门文章

  1. VS2005 Extjs智能提示插件
  2. typedef用法小结(转载)
  3. 高仿富途牛牛-组件化(五)-如何去管理炒鸡多的小窗口
  4. 温故知新ASP.NET 2.0(C#)(3) - SiteMap(站点地图)
  5. Android Support Annotation的使用
  6. TextView跑步灯效果及在特殊情况下无效的解决方式
  7. MAC下MySQL启动不了怎么办?
  8. JS实现:鼠标悬停图片,图片由彩色变为灰色
  9. phpstorm 2019.1 mac
  10. 交互式编程之Golang基本配置(Jupyter-notebooks Golang)