题目详情:
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
有一个 6位的正整数,它有个很神奇的性质:
分别用2,3,4,5,6 去乘它,得到的仍然是 6 位数,并且乘积中所包含的数字与这个 6 位数完全一样!只不过是它们的顺序重新排列了而已。
请计算出这个 6 位数。
解题思路:
本题需要定义一个判断函数,将老数字的每一个数字去放到对应的数字数组里面去,让数字数组最后是表示这个数字的总个数,然后让乘后的新数字也同样去放到数字数组里面去,只不过这一次是相减,如果说最后的数字数组每一个数都是0,那么就是说他们只是顺序重新排序了而已,因为乘以6还是六位数,所以判断区间不需要很大,详细看下面代码。
代码实现:
public class d1301 {
public static void main(String[] args) {
for (int i = 100000; i <200000 ; i++) {
if(Is(i,2)&&Is(i,3)&&Is(i,4)&&Is(i,5)&&Is(i,6)){
System.out.println(i);
break;
}
}
}
public static boolean Is(int x,int y) {
String s = x+"";
char[] c = s.toCharArray();
int[] arr = new int[10];
for (int i = 0; i < 10; i++) {
arr[i] =0;
}
for (int i = 0; i < 6; i++) {
arr[c[i]-'0']++;
}
String h = (x*y)+"";
char[] ch = h.toCharArray();
for (int i = 0; i < 6; i++) {
arr[ch[i]-'0']--;
}
for (int i = 0; i < 10; i++) {
if (arr[i]!=0){
return false;
}
}
return true;
}
}
答案:
142857