c语言输入一个数据,判断该数据是否是一个同构数。同构数是指该数出现在其平方数的右边,例如5和25是同构数。
时间: 2023-05-11 13:05:08 浏览: 120
以下是判断一个数是否为同构数的 C 语言代码:
#include <stdio.h>
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
int square = num * num;
int temp = num;
while (temp > 0) {
if (temp % 10 != square % 10) {
printf("%d 不是同构数\n", num);
return 0;
}
temp /= 10;
square /= 10;
}
printf("%d 是同构数\n", num);
return 0;
}
如果输入的数是同构数,则输出“该数是同构数”,否则输出“该数不是同构数”。
相关问题
c语言编写函数判断一个数是否是同构数
同构数也被称为自守数,是指一个数字的平方的末尾数字与该数字本身相同。例如,5的平方是25,末尾数字是5,因此5是同构数。
以下是一个C语言函数,用于判断一个数字是否是同构数:
```c
#include <stdio.h>
int isAutomorphic(int num) {
int square = num * num;
while (num > 0) {
if (num % 10 != square % 10) {
return 0;
}
num /= 10;
square /= 10;
}
return 1;
}
int main() {
int num;
printf("请输入一个数字:");
scanf("%d", &num);
if (isAutomorphic(num)) {
printf("%d是同构数\n", num);
} else {
printf("%d不是同构数\n", num);
}
return 0;
}
```
该函数首先计算该数字的平方,然后从数字的末位开始,依次比较数字和平方的末位数字,如果不相同,则该数字不是同构数。如果所有末位数字都相同,则该数字是同构数。
判断一个数是否是同构数,用C语言
同构数是指一个数的平方的各位数字排列后可以得到原数。例如,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;
}
```
这个程序首先读入一个整数,然后计算它的平方。接着,将原数和平方的数字转换为字符串,并对原数的字符串进行排序。最后,比较原数和平方的排序后的字符串,如果相等,则说明该数是同构数。