数字黑洞java_java实现数字黑洞
任意一个 5 位数,比如:34256,把它的各位数字打乱,重新排列,可以得到
一个最大的数:65432,一个最小的数 23456。
求这两个数字的差,得:41976,把这个数字再次重复上述过程(如果不足 5 位,则前边补 0)。如此往复,数字会
落入某个循环圈(称为数字黑洞)。
比如,刚才的数字会落入:[82962,75933, 63954, 61974]这个循环圈。
请编写程序,找到 5 位数所有可能的循环圈,并输出,每个循环圈占 1 行。
其中 5 位数全都相同则循环圈为[0],这个可以不考虑。循环圈的输出格式仿照:
[82962,75933, 63954, 61974]其中数字的先后顺序可以不考虑。
/*
*/
package Question30_39;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;
61
import java.util.LinkedHashSet;
import java.util.Scanner;
import java.util.Set;
public class Question30TooDifficultMustRemember{
public static int MaxSubMin(int n) {
StringBuffer sb=new StringBuffer(""+n);
while (sb.length()<5) {
sb.insert(0, '0');
}
char ch[]=(sb.toString()).toCharArray();
Arrays.sort(ch);
int
max=(ch[4]-'0')*10000+(ch[3]-'0')*1000+(ch[2]-'0')*100+(ch[1]-'0')*10+ch[0]-'0';
int
min=(ch[0]-'0')*10000+(ch[1]-'0')*1000+(ch[2]-'0')*100+(ch[3]-'0')*10+ch[4]-'0';
return max-min;
}
public static Set blackHole(int n) {
Set set=new LinkedHashSet();
set.add(n);
while(true){
n=MaxSubMin(n);
if(set.add(n)==false){
SettSet=new LinkedHashSet();
for (Iterator iterator = set.iterator(); iterator.hasNext();) {
Integer integer = (Integer) iterator.next();
if(integer==n){
break;
}else {
tSet.add(integer);
}
}
set.removeAll(tSet);
break;
}
}
return set;
}
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
// int n=scanner.nextInt();
Set>set=new LinkedHashSet<>();
for (int i = 10000; i < 100000; i++) {
62
set.add(blackHole(i));
}
for (Iterator iterator = set.iterator(); iterator.hasNext();) {
Set set2 = (Set) iterator.next();
System.out.println(set2);
}
}
}
运行结果:
[0]
[74943, 62964, 71973, 83952]
[63954, 61974, 82962, 75933]
[53955, 59994]
数字黑洞java_java实现数字黑洞相关推荐
- 数字黑洞java_Java中数字黑洞实现代码
给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到一个新的数字.一直重复这样做,我们很快会停在有"数字黑洞&qu ...
- 数字倒序Java_java输入数字,输出倒序的实例
java输入数字,输出倒序的实例,逆序,整数,给大家,请输入,三种 java输入数字,输出倒序的实例 易采站长站,站长之家为您整理了java输入数字,输出倒序的实例的相关内容. 我就废话不多说了,大家 ...
- 宇宙有黑洞,信息数字黑洞
工业互联网.5G+智能化.云平台等如雨后春笋般接踵而至,大数据时代数字黑洞是指那些无法有效处理和利用的大量数据,它们像黑洞一样,吞噬着有价值的信息,同时对数据分析和决策带来了巨大的困难. 假设某家电商 ...
- 西绪福斯黑洞(123数字黑洞)——java实现
西绪福斯黑洞(123数字黑洞) 数学中的123就跟英语中的ABC一样平凡和简单.然而,按以下运算顺序,就可以观察到这个最简单的数字 黑洞的值: 设定一个任意数字串,数出这个数中的偶数个数,奇数个数,及 ...
- 【数字孪生】关于数字孪生的冷思考及其背后的建模和仿真技术
来源:系统仿真学报 张霖 北京航空航天大学教授.曾任国际建模仿真学会(SCS)主席,北 航自动化 学院副院长等,现为ASIASIM主席,中国仿真学 ...
- js 判断是不是数字||判断字符串是不是数字(正则表达式)
js使用正则表达式判断对象是不是数字,或者字符串是不是数字,或者是不是数字类型 1 //判断是不是一个数字 或者 一个字符串里全是数字 2 isNumber (value) { 3 if (value ...
- js 数字递增递减_数字推理满分技巧 !不是干货,请批我!
公众号:兼得公考 数字推理不是广东的特色考点,但广东的数字推理是比较有"特色"的,他的特色就是简单,特别是2019年的数字推理.但我们不能因为某一两年考得简单而简单地学,为了让大家 ...
- C将十六进制数字字符串转成数字
1.将十六进制数字字符串转成数字 long lTemp = strtol("0xa10b", NULL, 16); 这样的话,就将0xa10b这个十六制形式的字符串转为 ...
- python 如何将字符串数字列表转换成数字列表,如何将数字列表转换成字符串数字列表?map(eval,list(str))
字符串数字列表转换成数字列表 # -*- encoding: utf-8 -*- """ @File : test.py @Time : 2019/10/28 23:37 ...
- 怎样能用计算机打出表白数字,怎么用数字表白?盘点数字表白暗语
怎么用数字表白?盘点数字表白暗语 时间:2020-05-03 19:43:06来源:考试帮手网作者:敏敏 表白的方法有很多,大家用过最多的就是文字表白,大家有没有听说过用数字表白呢?数字表白如今已经成 ...
最新文章
- 栈和队列的区别 | 每日趣闻
- spring 初始化数据库
- css网页布局中文字排版的属性和用法
- Chrome用户请尽快更新:谷歌发现两个严重的零日漏洞
- 【来龙去脉系列】.net分布式系统架构的思路
- Silverlight Training
- 容器化技术如何在数据中心实践
- objective-c 编写规范_Objective-c成员变量的定义方式?如何写才规范?
- unity官方教程-TANKS(一)
- mysql数据库分析结果与结论_mysql数据库show processlist结果分析
- SQL Server where和having区别
- 数据bag中的激光雷达数据和相机数据分割出来
- Java MD5 加密工具类
- 数字图像处理——基于matlab的车牌号识别
- MyBatis官方文档-简介
- 基于Modelica的起落架摆震建模
- 一句话讲清种子轮、天使轮、ABC轮的区别
- 部署社区版deepflow
- 大数据征信成撬动消费金融的支点?
- power bi 雷达图_星载雷达与C波段地基雷达数据一致性个例分析 | 新文速递
热门文章
- sa结构组网方式_NSA和SA两种组网方式均为5G
- 编程中常见的数学概念及常用解法
- 网络安全等级保护概述
- 维基百科数据导入mysql数据库并进行检索操作
- 第二重要极限公式推导过程_土木考研 土力学第八章公式推导
- 0CTF-babyheap2017祥讲
- 【周博磊】强化学习纲要 一至六讲笔记
- matlab 三维图像 叠加,利用 Matlab构建“波的叠加”图样
- 2018-2019年江苏省高等学校“阿里云大数据技术实战训练营”大学生万人计划学术冬令营开营...
- canvas绘制出货单