使用C语言编写程序找出1至99之间的全部同构数

题目描述

找出1至99之间的全部同构数。注:正整数n若是它平方数的尾部,则称n为同构数。例如,6是其平方数36的尾部,25是其平方数625的尾部,6与25都是同构数。

输入格式:

输出格式:

在一行中输出全部同构数,每个数后面输出一个空格。

案例代码

#include <stdio.h>

// 函数声明
int isAutomorphic(int num);

int main() {
    printf("1至99之间的全部同构数为:\n");
    // 遍历1到99之间的数字
    for (int i = 1; i <= 99; i++) {
        if (isAutomorphic(i)) {  // 判断是否为同构数
            printf("%d ", i);
        }
    }
    printf("\n");

    return 0;
}

// 判断一个数是否为同构数的函数
int isAutomorphic(int num) {
    int square = num * num;
    
    // 逐位比较
    while (num != 0) {
        if (num % 10 != square % 10) {
            return 0;  // 不是同构数
        }
        num /= 10;
        square /= 10;
    }
    
    return 1;  // 是同构数
}

这个程序中,我们定义了一个名为 isAutomorphic 的函数来判断一个数是否为同构数。在主函数中,我们遍历1至99之间的所有数字,对每个数字调用 isAutomorphic 函数判断是否为同构数,如果是,则输出该数字。

© 版权声明
THE END
喜欢就支持一下吧
点赞12赞赏 分享