用c语言编程找出 1 至 99 之间的全部同构数。同构数是这样的一组数:它出现在其平方数的 右边。例如:5 是 25 右边的数,25 是 625 右边的数,因此 5 和 25 都是同构数。
时间: 2024-03-08 07:46:13 浏览: 137
好的,这是一个有趣的问题!为了找出 1 至 99 之间的全部同构数,我们可以编写以下代码:
```c
#include <stdio.h>
int main() {
int i, j, n, k, num, sqr, digit, flag;
printf("1-99之间的同构数为:\n");
for (i = 1; i <= 99; i++) {
sqr = i * i; // 计算平方
n = i; // n为当前数字
k = 1; // k为位数
while (n > 0) {
k *= 10;
n /= 10;
}
k /= 10; // k为当前数字的位数
num = sqr % k; // num为平方数的右边数字
flag = 1; // flag表示当前数字是否为同构数
while (num > 0) {
digit = num % 10;
if (digit != i % 10) {
flag = 0;
break;
}
num /= 10;
i /= 10;
}
if (flag) {
printf("%d\n", i);
}
}
return 0;
}
```
代码中,我们使用了两个循环。外层循环遍历 1 至 99 中的每一个数字,内层循环计算该数字的平方数的右边数字,并与该数字本身的右边数字进行比较,判断是否为同构数。若是,则输出该数字。
注意,我们在比较数字的右边数字时,需要将当前数字和平方数的右边数字一一比较。比如,当 i=25 时,25 的右边数字为 5,而 625 的右边数字也为 5,因此 25 是同构数。
阅读全文