/* 数字黑洞
任意给定一个4位数(不能所有位都相同),比如:3278,重新组合出最大数:8723,
再重新组合出最小数:2378,相减,得到新的4位数(如不足则补0),重复这个过程,
最后必然得到一个数字:6174。这个现象被称为:数字黑洞。
下面的函数实现由给定的4位整数求出下一个整数的功能。请完善之。
*/
public class 数字黑洞 {
public static int f(int n) {
int N[] = new int[4];
for (int i = 0; i < 4; i++) {
N[3 - i] = n % 10;
n = n/10; // 填空
}
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3 - i; j++)
if (N[j] > N[j + 1]) {
int t = N[j + 1];
N[j + 1] = N[j];
N[j] = t;
}
int n_min = 0;
for (int i = 0; i < 4; i++)
n_min = n_min * 10 + N[i];
int n_max = 0;
for (int i = 3; i >= 0; i--)
n_max = n_max * 10 + N[i];
return n_max - n_min;
}
public static void main(String[] args) {
int n = 3124;
System.out.println(f(n));
}
}
数字黑洞 二
最新推荐文章于 2021-08-29 23:54:35 发布