问题描述:
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)); } }