6174猜想 :

1955年,卡普耶卡(D.R.Kaprekar)研究了对四位数的一种变换:任给出四位数k0,用它的四个数字由大到小重新排列成一个四位数m,再减去它的反序数rev(m),得出数k1=m-rev(m),然后,继续对k1重复上述变换,得数k2.如此进行下去,卡普耶卡发现,无论k0是多大的四位数, 只要四个数字不全相同,最多进行7次上述变换,就会出现四位数6174.

例子1:

5200 - 0025 = 5175
7551 - 1557 = 5994
9954 - 4599 = 5355
5553 - 3555 = 1998
9981 - 1899 = 8082
8820 - 0288 = 8532
8532 - 2358 = 6174
7641 - 1467 = 6174

例子2:

9871 - 1789 = 8082
8820 - 0288 = 8532

8532 - 2358 = 6174

Java实现:

import java.util.Scanner;public class Main{public static void main(String[] args){Scanner sc = new Scanner(System.in);int data = sc.nextInt();compute(data,0);}public static void compute(int data,int old){if(data >= 10000 || data < 1000){System.out.println("输入数据不是4位数!");return;}int[] bit = new int[4];int index = 3;while(data > 0){bit[index] = data % 10;data = data / 10;index--;}boolean flag = true;for(int i = 0; i < 3; i++){if(bit[i] != bit[i + 1]){flag = false;break;}}if(flag){System.out.println("输入的数据各位数值一样!");return;}MinMax mm = getMinMax(sort(bit));int sub = mm.getMax() - mm.getMin();System.out.println(mm.getMax() + "-" + mm.getMin() + "=" + sub);if(sub == old){return;}compute(sub,sub);}//因为排序数据比较少,直接用选择排序----升序public static int[] sort(int[] bit){int len = bit.length;for(int i = 0; i < len; i++){int tmp = i;for(int j = i;j < len; j++){if(bit[j] < bit[tmp]){tmp = j;}}swap(bit, i, tmp);}return bit;}//交换数组两个位置的值public static void swap(int[] bit, int a, int b){int tmp = bit[a];bit[a] = bit[b];bit[b] = tmp;}public static MinMax getMinMax(int[] bit){int max = 0;int min = 0;for(int i = 0; i < bit.length; i++){min = min * 10 + bit[i];max = max * 10 + bit[bit.length - i - 1];}MinMax mm = new MinMax();mm.setMax(max);mm.setMin(min);return mm;}
}class MinMax{private int min;private int max;public int getMin() {return min;}public void setMin(int min) {this.min = min;}public int getMax() {return max;}public void setMax(int max) {this.max = max;}}

kaprekar常数(6174猜想)相关推荐

  1. 数字黑洞6174(Kaprekar常数)之java演示

    1 简介 数字黑洞6174,也称"卡谱耶卡常数"(Kaprekar). 任意选一个四位数(数字不能完全相同),把所有的数字从大到小排列,再把所有数字从小到大排列,用前者减去后者,得 ...

  2. 5位数的数字黑洞是多少_每日一题[491]数字黑洞--Kaprekar常数

    定义$\overline{abc}$是一个三位数,其中各数位上的数字$a,b,c\in \{ 0,1,2,3,4,5,6,7,8,9 \}$且不全相同.定义如下运算$f$:把$\overline{ab ...

  3. matlab常数编程,Matlab编程,求解出卡普雷卡尔(Kaprekar)常数

    用matlab编程,计算出卡普雷卡尔(Kaprekar)常数 取任意一个4位数(4个数字均为同一个数的除外),将该数的4个数字重新组合,形成可能的最大数和可能的最小数,再将两者之间的差求出来:对此差值 ...

  4. python验证卡普耶卡(D.R.Kaprekar)6174猜想

    1955年,卡普耶卡(D.R.Kaprekar)对4位数字进行了研究,发现一个规律: 对任意各位数字不相同的4位数,使用各位数字能组成的最大数减去能组成的最小数,对得到的差重复这个操作,最终会得到61 ...

  5. 用python验证猜想之类的例子_python验证卡普耶卡(D.R.Kaprekar)6174猜想

    1955年,卡普耶卡(D.R.Kaprekar)对4位数字进行了研究,发现一个规律: 对任意各位数字不相同的4位数,使用各位数字能组成的最大数减去能组成的最小数,对得到的差重复这个操作,最终会得到61 ...

  6. 使用Python验证6174猜想

    问题描述:1955年,卡普耶卡(D.R.Kaprekar)对4位数字进行了研究,发现一个规律:对任意各位数字不相同的4位数,使用各位数字能组成的最大数减去能组成的最小数,对得到的差重复这个操作,最终会 ...

  7. JAVA小程序-数学黑洞6174猜想

    数学黑洞7174猜想: 任给出四位数k0,用它的四个数字由大到小重新排列成一个四位数m,再减去它的反序数rev(m),得出数k1=m-rev(m),然后,继续对k1重复上述变换,得数k2.如此进行下去 ...

  8. Python三种方法统计4位自然数变为黑洞数6174所需次数分布

    推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清华大学出版社,2020年6月第1次印刷,2021年9月第10次印刷,山东省一流本 ...

  9. PAT (Basic Level) Practice (中文)答案合集

    准备复试专用,目标刷完全部中文题! 1001 害死人不偿命的(3n+1)猜想 (15 分) 卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把 ...

最新文章

  1. 洛谷——P2872 [USACO07DEC]道路建设Building Roads
  2. 微信看一看实时相关推荐介绍
  3. 一个极简的RePlugin
  4. java认证,ocjp认证,jdk1.8,全流程介绍
  5. Android APP常用的图标尺寸
  6. 电脑上怎么安装c语言编程软件,如何在自己的电脑上安装C语言运行的环境?
  7. 关于ppp、PPPoE、PPTP、L2TP、IPSec协议的简单认识
  8. docker里面什么emule比较好_emule 服务器优先
  9. 简析内容付费趋势,问题和路径
  10. c语言中判断星期几的程序,用C语言编程:输入某年某月某日,判断这一天是这一年的第几个星期中的星期几...
  11. 5.22 使用筛选功能快速过滤指定条件的数据 [原创Excel教程]
  12. 《真·三国无双ADVANCE》攻略
  13. JavaWeb-学生宿舍管理系统
  14. 第一期 前言 《路由器就是开发板》
  15. 思维导图一定要用计算机来完成吗,计算机绘制思维导图的优势和趋势
  16. 通过Logstash实现mysql数据定时增量同步到ES
  17. 2017年中国游戏产业报告(简要)
  18. 【数据挖掘】用户画像
  19. F score和ROC
  20. 小程序 小程序跳转公众号页面

热门文章

  1. ps命令 proc文件系统
  2. 说说职场中的交流和沟通(转)
  3. js,jq,锚点 分别实现返回顶部
  4. Linux系统实现访问localhost(127.0.0.1)浏览WWW网站目录
  5. JavaScript加密/解密与OpenAI的对接:生成加密对话的ChatGPT 4.0应用
  6. 网络原理 | 网络设备及相关技术(集线器、交换机、主机、路由器)、冲突域与广播域
  7. 适合安装在服务器上使用的操作系统,适合于做服务器的操作系统有
  8. android基础学习
  9. 使用数据库进行用户身份认证
  10. p标签是啥意思 php,p是什么元素