用c语言输出10000以内的同构数,每个数占一行,只用main函数
时间: 2024-11-25 15:13:50 浏览: 15
同构数是指将一个数字的各个位数字交换位置后,得到的新数字与原数字相等。在C语言中,你可以通过遍历1到10000之间的所有整数,并检查其是否为同构数来完成这个任务。下面是一个简单的示例,它仅在`main()`函数中实现:
```c
#include <stdio.h>
#include <stdbool.h>
bool isHeteroAnagram(int num) {
int temp = num;
while (temp != 0) {
int digit = temp % 10;
if (digit == 0 && temp != 0) // 处理0开头的情况
return false;
temp /= 10;
}
char digits[10] = {0};
int len = 0;
while (num > 0) {
digits[len++] = num % 10 + '0';
num /= 10;
}
for (int i = 0; i < len / 2; i++) {
if (digits[i] != digits[len - 1 - i]) {
return false;
}
}
return true;
}
int main() {
int start = 1;
int end = 10000;
printf("同构数:\n");
for (int num = start; num <= end; num++) {
if (isHeteroAnagram(num)) {
printf("%d\n", num);
}
}
return 0;
}
```
在这个程序中,`isHeteroAnagram()` 函数用于判断一个数是否为同构数,而`main()`函数负责循环遍历并打印出满足条件的数。
阅读全文