C语言实现自守数判断及输出:1~1000的自守数
#include <stdio.h>
int isAutomorphic(int num);
int main() { int count = 0; for (int i = 1; i <= 1000; i++) { if (isAutomorphic(i)) { printf("%6d ", i); count++; if (count % 5 == 0) { 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; }
// 代码解释:
- #include <stdio.h> - 引入标准输入输出库,用于使用 printf 函数。
- int isAutomorphic(int num); - 声明一个函数 isAutomorphic,用于判断一个数是否为自守数。
- int main() - 程序的入口函数。
- int count = 0; - 初始化计数变量 count 为 0,用于统计已输出的自守数个数。
- for (int i = 1; i <= 1000; i++) - 循环遍历 1 到 1000 之间的每个数。
- if (isAutomorphic(i)) - 判断当前数 i 是否为自守数,如果是则执行以下代码块。
- printf("%6d ", i); - 打印当前自守数 i,占 6 位。
- count++; - 计数变量 count 加 1。
- if (count % 5 == 0) - 判断已输出的自守数个数是否为 5 的倍数。
- printf("\n"); - 换行。
- return 0; - 程序执行完毕,返回 0 表示正常结束。
- int isAutomorphic(int num) - 定义函数 isAutomorphic,用于判断一个数是否为自守数。
- int square = num * num; - 计算当前数的平方并赋值给变量 square。
- while (num > 0) - 当前数大于 0 时执行循环。
- if (num % 10 != square % 10) - 判断当前数的个位数是否等于其平方的个位数,如果不相等则不是自守数。
- return 0; - 返回 0 表示不是自守数。
- num /= 10; - 将当前数除以 10,去掉个位数。
- square /= 10; - 将平方数除以 10,去掉个位数。
- return 1; - 返回 1 表示是自守数。
原文地址: https://www.cveoy.top/t/topic/njE 著作权归作者所有。请勿转载和采集!