问题描述:
It can be seen that the number, 125874, and its double, 251748, contain exactly the same digits, but in a different order.
Find the smallest positive integer, x, such that 2x, 3x, 4x, 5x, and 6x, contain the same digits.
解决问题:
package projecteuler;
import java.util.Arrays;
public class Problem52 {
public static boolean IsNumber(int number){
int tmp = number;
boolean[] elements = new boolean[10];
Arrays.fill(elements, false);
while(tmp!=0){
elements[tmp%10] = true;
tmp = tmp/10;
}
for(int i=2; i<7; i++){
int value = number*i;
while(value!=0){
if(!elements[value%10])
return false;
value = value/10;
}
}
return true;
}
public static void main(String[] args){
boolean found = false;
int begin = 100;
int last = 200;
int ans = 0;
do{
int i = begin +1;
for(;i<last; i++){
if(IsNumber(i)){
ans = i;
found = true;
break;
}
}
begin *= 10;
last *= 10;
}while(!found);
System.out.println("Ans:"+ans);
System.out.println(IsNumber(142857));
}
}