欧拉计划32题

/**
* Pandigital products
* Problem 32
*
* We shall say that an n-digit number is pandigital
* if it makes use of all the digits 1 to n exactly once;
* for example, the 5-digit number, 15234, is 1 through 5 pandigital.
*
* The product 7254 is unusual, as the identity, 39 × 186 = 7254,
* containing multiplicand, multiplier, and product is 1 through 9 pandigital.
*
* Find the sum of all products whose multiplicand/multiplier/product identity
* can be written as a 1 through 9 pandigital.
*
* HINT: Some products can be obtained in more than one way
* so be sure to only include it once in your sum.
*
*/
分析
数A*数B=数C,共计9位,
只可能是 1位*4位=4位,或者 2位*3位=4位
因此只需两次两层循环,并判断相乘结果是否满足条件即可

代码实现:

for (int i = 1; i < 10; i++){
for (int j = 1234; j < 9877; j++){
int k = i * j;
String num = "" + i + j + k;
if (k / 10000 > 0){
break;
}
if (isPandigital(num)){
System.out.println("" + i + "*" + j + "=" + k);

}
}
}

for (int i = 12; i < 99; i++){
for (int j = 123; j < 988; j++){
int k = i * j;
String num = "" + i + j + k;
if (k / 10000 > 0){
break;
}
if (isPandigital(num)){
System.out.println("" + i + "*" + j + "=" + k);
}
}
}

结果:45228

4 * 1738 = 6952
4 * 1963 = 7852
12 * 483 = 5796
18 * 297 = 5346
27 * 198 = 5346
28 * 157 = 4396
39 * 186 = 7254
42 * 138 = 5796
48 * 159 = 7632












猜你喜欢

转载自535260620.iteye.com/blog/2283278