验证数学黑洞 ,用户输入一个四位数,输出变换到6174的过程
来源:互联网 发布:淘宝的旗舰店可信吗 编辑:程序博客网 时间:2024/04/30 05:59
首先,我们先了解一下什么是数学黑洞?
一个任意四位数,把四个数字分别组成一个最大的数和一个最小的数,作差,得新的四位数,重复此过程,7次内必得6174。
例如:1234:
4321-1234=3087
8730-0378=8352
8532-2358=6174
实现:
1、将一个四位数的各个数位上的数字拆开,重新组合成两个新的数(一个最大的,一个最小的)
2、用最大的数减去最小的数
3、判断两个数的差是不是6174
是:验证完毕
否:重复1—3步骤,直到出现两个数的差为6174(7步之内必出结果(包括7步))
具体代码:
package com.zzti.scs.peter.homework;
import java.util.Arrays;
import java.util.Scanner;
/**
*
* 验证数学黑洞
* @author peter
* @version 1.0
* @date 2015年7月26日
*/
public class Zhang5T3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.println("请输入一个四位数:");
int num = input.nextInt();
yanZheng(num);
input.close();
}
public static int yanZheng(int num){
//定义一个数组存储四位数的各个数字
int a[]=new int[4];
//用来存储被减数(数字重新排序后的最大四位数)
int num1 = 0;
//用来存储减数(数字重新排序后的最小的四位数)
int num2 = 0;
//do····while循环判断是否等于6174
do{
for(int i=0;i<a.length;i++){
a[i] = num%10;
num = num/10;
}
//各个数位的数字按升排列
Arrays.sort(a);
//最大值赋值给num1
num1 = a[0]+a[1]*10+a[2]*100+a[3]*1000;
//最小值赋值给num2
num2 = a[0]*1000+a[1]*100+a[2]*10+a[3];
//输出每一步的结果
System.out.println(num1+"-"+num2+"="+(num1-num2));
num = num1-num2;
}while(num!=6174);
return 0;
}
}
- 验证数学黑洞 ,用户输入一个四位数,输出变换到6174的过程
- 验证数学黑洞 ,用户输入一个四位数,输出变换到6174的过程
- 算法:输入一个四位数,然后分别输出这个四位数的每一位数字
- 一个关于四位数猜想的验证
- 四位数黑洞问题
- 趣味数学--用1到9这九个数组成一个四位数乘以一位数等于四位数的等式,每个数只能用一次
- 输入一个任意位数的整数进行逆序输出
- 输入一个整数,求它的位数,倒序输出
- 1、编写程序,输入一个四位数,打印输出其个位数、十位数、百位数和千位数。
- 接收用户输入的一个5位数,求个位数、十位数、百位数、千位数、万位数的和
- 当用户输入一个url地址后,到看到页面的过程,期间发生了什么?
- 一个特殊的四位数
- 数学黑洞6174
- 数学黑洞6174问题
- 输出四位数各位上的数字
- 输入一个字节内的数(0-255)和移动的位数,输出移位结果
- 第三章——输入一个不多于5位的数,然后输出它是几位数,输出它的每一位数,逆序输出该数。
- 根据用户输入的大小来输出一个空心菱形
- awk 使用
- android ImageButton使用形状非方形的png图片但却显示出正方形白边的情况
- HDU-2289 Cup
- HDU 2952 Counting Sheep (DFS)
- 一个Web布局实例
- 验证数学黑洞 ,用户输入一个四位数,输出变换到6174的过程
- javascript之变量
- Java小日历
- LeetCode(150) Evaluate Reverse Polish Notation
- Delphi学习第三天
- Mysql中创建用户和授权的方法
- c++类类型的一个问题!
- Web_url
- 【计蒜客系列】挑战难题21:最大子阵列