【问题描述】 输入三位数字N,求两位数AB(其中个位数字为B,十位数字为A,且有0 < A < B)。使得下列等式成立: AB x BA = N 其中BA是把AB中个、十位数字交换所得的两位数。 编写程序,接收键盘输入的三位整数N,求解A,B并输出。 如果没有解则输出No 【输入形式】 从键盘输入整数N。 【输出形式】 输出只有一行,包含两个数字A和B。输出时两个数字紧密输出,不使用其它字符进行分隔。 【样例输入1】 976 【样例输出1】 16 【样例输入2】 129 【样例输出2】 No用C语言写
时间: 2024-03-23 15:43:48 浏览: 56
《数字逻辑(第六版)》白中英等编著 教材前三章答案.docx
以下是用C语言编写的程序:
```c
#include <stdio.h>
int main()
{
int n, a, b, flag = 0;
scanf("%d", &n);
for (a = 1; a <= 9; a++)
{
for (b = a + 1; b <= 9; b++)
{
if (a * 10 + b == b * 10 + a)
continue;
if (a * 10 + b * (b * 10 + a) == n)
{
printf("%d%d", a, b);
flag = 1;
break;
}
}
if (flag)
break;
}
if (!flag)
printf("No");
return 0;
}
```
程序的思路是先枚举A和B,然后判断是否满足AB x BA = N的条件,如果满足就输出A和B,并标记有解,最后判断是否有解,如果没有就输出No。注意要排除AB和BA相等的情况。
阅读全文