题目:
选择数字完成以下逆序成绩式DE×FG=ED×GF
,式中的每一个字母代表一个数字,不同的字母代表不同的数字。试找出所有符合条件的逆序成绩式。 输出样例
12∗63=21∗36
12∗84=21∗48
13∗62=31∗26
14∗82=41∗28
23∗64=32∗46
23∗96=32∗69
思路:DEFG字母的取值范围再1-9(可以缩短取值范围),可以进行多重循环,枚举出所有的可能性再一一对比,符合条件的被录入输出。关键是可以由DE×FG=ED×GF推到出D*F=E*G,在后面做判断可以用到。需要注意的是每个字母都代表不同的数字,即不能多个字母的值是同一个数字,我就在这里没转过弯。
代码如下:
package day1_1;
//选择数字完成以下逆序成绩式DE×FG=ED×GF,式中的每一个字母代表一个数字,不同的字母代表不同的数字。试找出所有符合条件的逆序成绩式。
//输出样例
//12*63=21*36
//12*84=21*48
//13*62=31*26
//14*82=41*28
//23*64=32*46
//23*96=32*69
public class T3 {
public static void main(String[] args) {
int x,y,a,b;
for(x=1;x<=9;x++) {
for(y=x+1;y<=9;y++) {
for(a=y+1;a<=9;a++) {
if((x*a%y)==0) {
b=x*a/y;
if(b!=x&&b!=a&&b!=y) {
System.out.println((x*10+y)+"*"+(a*10+b)+"="+(y*10+x)+"*"+(b*10+a));
}
}
}
}
}
}
}