判断整数x是否是同构数。设计一个判断是否是同构数的函数,若是同构数,函数返回1;否则返回0。x的值由主函数从键盘读入,要求不大于100。说明:所谓“同构数”是指这样的数,这个数出现在它的平方数的右边。例如:输入整数5,5的平方数是25,5是25中右侧的数,所 以5是同构数。
时间: 2024-05-11 16:19:41 浏览: 106
以下是判断是否为同构数的函数实现:
```c
#include <stdio.h>
int isIsomorphic(int x) {
int square = x * x; // 计算平方数
int digitCount = 0;
int temp = x;
while (temp > 0) {
temp /= 10; // 计算x的位数
digitCount++;
}
int rightDigit = square % 10; // 获取平方数的最后一位
for (int i = 0; i < digitCount; i++) {
if (x % 10 != rightDigit) {
return 0; // 如果x的最后一位不等于平方数的最后一位,返回0
}
x /= 10;
square /= 10; // x和平方数同时向右移动一位
rightDigit = square % 10;
}
return 1; // 如果所有位都匹配,返回1
}
int main() {
int x;
printf("请输入一个整数:");
scanf("%d", &x);
if (isIsomorphic(x)) {
printf("%d是同构数\n", x);
} else {
printf("%d不是同构数\n", x);
}
return 0;
}
```
这个函数首先计算出x的平方数,然后计算x的位数。接着从右往左依次比较x和平方数的每一位,如果不匹配就返回0,否则继续比较。如果所有位都匹配,就返回1表示x是同构数。
阅读全文