【问题描述】
输入三位数字N,求两位数AB(其中个位数字为B,十位数字为A,且有0 < A < B < 9)。使得下列等式成立:
AB x BA = N
其中BA是把AB中个、十位数字交换所得的两位数。
编写程序,接收控制台输入的三位整数N,求解A,B并输出。
如果没有解则输出No Answer。
【输入形式】
从键盘输入整数N。
【输出形式】
输出只有一行,包含两个数字A和B。输出时两个数字紧密输出,不使用其它字符进行分隔。
【样例输入】
976
【样例输出】
16
【样例说明】
输入整数N=976。经计算得16X61=976。可得a=1, b=6。将两个字符依次输出。
【评分标准】
结果完全正确得20分,每个测试点4分。
import java.util.Scanner;
public class _02ab {
static boolean flag;
public static void main(String[] args) {
int n;
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
for (int i = 1; i <= 9; ++i) {//A
for (int j = i + 1; j <= 9; ++j) {//B
//A < B 所以j从i+1开始
//p q 分别表示AB BA两个整数
int p = i * 10 + j, q = j * 10 + i;
if (p * q == n) {
System.out.println(p);
flag = true;//至少一组解
}
}
}
if(!flag)//没有解
System.out.println("No Answer");
}
}
A < B 所以 j 从 i + 1 开始,在用 flag 标记有没有解,方便没有解情况的输出。