用C语言写出下列代码:找出 2 至 99 之间的全部同构数。同构数是这样一组数:它出现在其平方数的右边,例 如,5 是 25 右边的数,25 是 625 右边的数,5 和 25 都是同构数。
时间: 2024-10-07 16:06:05 浏览: 23
在 C 语言中,我们可以创建一个函数来找出 2 到 99 范围内的同构数。下面是一个简单的程序实现:
```c
#include <stdio.h>
// 定义一个辅助函数检查是否同构
int isHomo(int num) {
int square_num = num * num;
int str1[100], len1 = 0, str2[100], len2 = 0;
// 将num转换成字符串
while (square_num > 0) {
str1[len1++] = square_num % 10 + '0';
square_num /= 10;
}
// 将str1反转
for (int i = len1 - 1, j = 0; i >= 0; i--, j++) {
str2[j] = str1[i];
}
// 检查str1是否等于str2逆序
for (int i = 0; i < len1; i++) {
if (str1[i] != str2[i]) {
return 0; // 不同,不是同构数
}
}
return 1; // 相等,是同构数
}
int main() {
for (int num = 2; num <= 99; num++) {
if (isHomo(num)) {
printf("%d 是同构数\n", num);
}
}
return 0;
}
```
这个程序首先定义了一个辅助函数 `isHomo` 来判断一个数字是否为同构数。然后,在 `main` 函数中,我们遍历从 2 到 99 的所有整数,并使用 `isHomo` 函数检查它们。
阅读全文