用C语言写:【问题描述】 输入三位数字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
时间: 2024-03-23 14:43:43 浏览: 82
以下是用C语言编写的程序:
```c
#include <stdio.h>
int main()
{
int n, a, b, i, j, flag = 0; // flag用于标记是否有解
scanf("%d", &n);
for (i = 1; i <= 9; i++) // 枚举A
{
for (j = i + 1; j <= 9; j++) // 枚举B
{
if (i * 10 + j == j * 10 + i) // 排除AB和BA相等的情况
continue;
if (i * 10 + j * (j * 10 + i) == n) // 如果满足条件,输出并标记有解
{
printf("%d%d", i, j);
flag = 1;
break;
}
}
if (flag) // 如果已经有解,跳出所有循环
break;
}
if (!flag) // 如果没有解,输出No
printf("No");
return 0;
}
```
程序的思路是先枚举A和B,然后判断是否满足AB x BA = N的条件,如果满足就输出A和B,并标记有解,最后判断是否有解,如果没有就输出No。注意要排除AB和BA相等的情况。
阅读全文