【题目】
小明是一个急性子,上小学的时候经常把老师写在黑板上的题目抄错。
有一次,老师出得题目是:36495=? 他却给抄成了:39645=?
但结果却很戏剧性,他的答案竟然是对的!!
因为36495=39645=17820
类似这样的巧合情况可能还有很多,
比如:27594=29754
假设a b c d e代表1-9不同的5个数字(注意是各不相同的数字,且不含0)
能满足形如:abcde=adbce这样的算式一共有多少种呢?
【代码步骤】
* 用5重循环枚举
*注意题目中要求:假设a b c d e代表1-9不同的5个数字(注意是各不相同的数字,且不含0)
方法一:
import java.util.Scanner;
public class E1 {
public static void main(String[] args) {
int sum=0;
for (int i = 1; i<10; i++) {
for (int j = 1; j <10; j++) {
if(j!=i) {
for (int j2 =1; j2 <10; j2++) {
if(j2!=i&&j2!=j) {
for (int k =1; k <10; k++) {
if(k!=i&&k!=j&&k!=j2) {
for (int k2 =1; k2<10; k2++) {
if(k2!=i&&k2!=j&&k2!=j2&&k2!=k) {
if((i*10+j)*(j2*100+k*10+k2)==(i*100+k*10+j)*(j2*10+k2)) {
sum++;
}
}
}
}
}
}
}
}
}
}
System.out.println(sum);
}
}
方法二:
import java.util.Scanner;
public class E1 {
public static void main(String[] args) {
int sum=0;
for (int i = 1; i<10; i++) {
for (int j = 1; j <10; j++) {
if(j==i) {continue;}
for (int j2 =1; j2 <10; j2++) {
if(j2==j||j2==i) {continue;}
for (int k =1; k <10; k++) {
if(k==j2||k==j||k==i) {continue;}
for (int k2 =1; k2<10; k2++) {
if(k2==k||k2==j2||k2==j||k2==i) {continue;}
if((i*10+j)*(j2*100+k*10+k2)==(i*100+k*10+j)*(j2*10+k2)) {
sum++;
}
}
}
}
}
}
System.out.println(sum);
}
}