判断一个数是否是同构数,用C语言
时间: 2023-10-21 17:05:19 浏览: 218
同构数是指一个数的平方的各位数字排列后可以得到原数。例如,25的平方为625,将数字重新排列可以得到原数25,因此25是同构数。
以下是一个判断同构数的C语言代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
int n, square;
char original[10], sorted[10];
printf("请输入一个整数:");
scanf("%d", &n);
square = n * n; // 计算平方
// 将原数和平方的数字转换为字符串
sprintf(original, "%d", n);
sprintf(sorted, "%d", square);
// 对字符串进行排序
int len = strlen(original);
for (int i = 0; i < len - 1; i++) {
for (int j = i + 1; j < len; j++) {
if (original[i] > original[j]) {
// 交换字符
char temp = original[i];
original[i] = original[j];
original[j] = temp;
}
}
}
// 比较原数和平方的排序后的字符串
if (strcmp(original, sorted) == 0) {
printf("%d是同构数。\n", n);
} else {
printf("%d不是同构数。\n", n);
}
return 0;
}
```
这个程序首先读入一个整数,然后计算它的平方。接着,将原数和平方的数字转换为字符串,并对原数的字符串进行排序。最后,比较原数和平方的排序后的字符串,如果相等,则说明该数是同构数。
阅读全文