怎么用JAVA 判断一个数是超完全数字不变数
时间: 2024-06-03 16:07:43 浏览: 144
一个超完全数字不变数是指一个数字在乘以2、3、4、5、6后,每个数字都可以通过重排得到原始数字。例如,142857是一个超完全数字不变数,因为:
142857 * 2 = 285714
142857 * 3 = 428571
142857 * 4 = 571428
142857 * 5 = 714285
142857 * 6 = 857142
要判断一个数是否是超完全数字不变数,可以使用以下JAVA代码:
public static boolean isSuperPermutation(int n) {
String s = String.valueOf(n);
for (int i = 2; i <= 6; i++) {
String s2 = String.valueOf(n * i);
if (s2.length() != s.length()) {
return false;
}
boolean found = false;
for (int j = 0; j < s.length(); j++) {
if (s2.indexOf(s.charAt(j)) >= 0) {
found = true;
} else {
found = false;
break;
}
}
if (!found) {
return false;
}
}
return true;
}
该方法接受一个整数作为参数,如果该数字是超完全数字不变数,则返回true,否则返回false。该方法首先将该数字转换为字符串,并使用一个循环来检查该数字乘以2、3、4、5、6后的结果是否可以通过重排得到原始数字。如果其中任何一个结果不能得到原始数字,则返回false。如果所有结果都可以得到原始数字,则返回true。
阅读全文