c语言输入三位数字N,求两位数AB(其中个位数字为B,十位数字为A,且有0 < A < B)。使得下列等式成立: AB x BA = N 其中BA是把AB中个、十位数字交换所得的两位数。 编写程序,接收键盘输入的三位整数N,求解A,B并输出。 如果没有解则输出No 【输入形式】 从键盘输入整数N。 【输出形式】 输出只有一行,包含两个数字A和B。输出时两个数字紧密输出,不使用其它字符进行分隔。
时间: 2024-03-20 09:41:35 浏览: 103
这是一个简单的枚举问题,我们可以枚举所有可能的 A 和 B,计算它们的积是否等于输入的 N,找到符合条件的 A 和 B 即可。
以下是 C 语言的实现:
```c
#include <stdio.h>
int main() {
int N;
scanf("%d", &N);
int A, B;
int found = 0; // 是否找到解的标记
for (A = 1; A <= 9; A++) {
for (B = A + 1; B <= 9; B++) {
int AB = A * 10 + B;
int BA = B * 10 + A;
if (AB * BA == N) {
found = 1;
break;
}
}
if (found) {
break;
}
}
if (found) {
printf("%d%d\n", A, B);
} else {
printf("No\n");
}
return 0;
}
```
我们首先读入输入的 N。然后,我们使用两个嵌套的循环,枚举所有可能的 A 和 B。对于每个 A 和 B,我们首先计算它们组成的两位数 AB 和 BA,然后判断 AB 和 BA 的积是否等于 N。如果等于,则说明我们找到了符合条件的 A 和 B,我们将 found 标记设置为 1 并跳出循环。
最后,我们根据 found 标记判断是否找到解。如果找到了,则输出 A 和 B 的值;否则,输出 No。值得注意的是,在输出 A 和 B 之间没有空格,我们需要将它们紧密输出,不使用其他字符进行分隔。
阅读全文