黑洞数

黑洞数是指于四位数中,只要数字不完全相同,将数字由大到小的排列减去由小到大的排列。假设一开始选定的数字为x_1x_2=f(x_1),x_3=f(x_2),...,x_n=f(x_{n-1}) 用同样的规则继续算下去,最后的结果一定是6174。 比如说一开始选定9891,则f(9891)=9981-1899=8082,f(8820)=8820-0288=8532,f(8532)=8532-2358=6174,f(7641)=7641-1467=6174~

其他的四位数经过这样一系列的运算后,在七步之内都会对应到6174。这种现象类似黑洞(进去后就出不来了),故称为黑洞数。

 

除此以外,三位数也有一个类似的黑洞数495

 

5位数的状况:没有黑洞,有3个循环

71973\to83952\to74943\to62964\to71973

82962\to75933\to63954\to61974\to82962

53955\to59994\to53955

6位数的状况:有2个黑洞631764、549945,还有1个7个成员的循环

420876\to851742\to750843\to840852\to860832\to862632\to642654\to420876

7位数的状况:没有黑洞,只有1个8成员的循环

7509843\to9529641\to8719722\to8649432\to7519743\to8429652\to7619733\to8439522\to7509843

8位数的状况:有2个黑洞63317664、97508421

9位数的状况:有2个黑洞554999445、864197532

10位数的状况:有3个黑洞6333176664、9753086421、9975084201

以上转自维基百科:https://zh.wikipedia.org/wiki/%E9%BB%91%E6%B4%9E%E6%95%B8

 

5位黑洞数题目:
五位黑洞数 
任意一个5位数,比如:34256,把它的各位数字打乱,重新排列,可以得到一个最大的数:65432,一个最小的数23456。
求这两个数字的差,得:41976,把这个数字再次重复上述过程(如果不足5位,则前边补0)。
如此往复,数字会落入某个循环圈(称为数字黑洞)。
比如,刚才的数字会落入:82962 75933 63954 61974 这个循环圈。


请编写程序,找到5位数所有可能的循环圈,并输出,每个循环圈占1行。其中5位数全都相同则循环圈为 0,这个可以不考虑。


循环圈的输出格式仿照:
82962 75933 63954 61974

其中数字的先后顺序可以不考虑。

package work;

import java.util.Arrays;
import java.util.Scanner;

import javax.naming.ldap.SortControl;

public class A60 {
	static int [] vis=new int[100000];
	public  static int cha(int n)//求一个数的最大数与最小数的差
	{
		int[] a=new int[100];
		int i=0;
		int ans1=0;
		int ans2=0;
		int sub=0;
		while(n!=0)
		{
			int r=n%10;
            a[i]=r;
			i++;
			n/=10;
		}
		Arrays.sort(a, 0,i);
		for(int j=0;j

 

你可能感兴趣的:(java)