【C】判断回文数

#include <stdio.h>
bool fun(int n) {
    int a = 0;
    int num = n;
    while (n > 0) {
        a = a * 10 + n % 10;
        n = n / 10;
    }
    if (a==num) {
        return true;
    } else {
        return false;
    }
}
int main() {
    int num;
    printf("请输入一个数字: ");
    scanf("%d", &num);
    if (fun(num)) {
        printf("%d 是一个回文数\n", num);
    } else {
        printf("%d 不是一个回文数.\n", num);
    }
    return 0;
}

这个程序使用了fun函数进行回文数的判断,a为n倒过来的数,若n为123,则a最终为321。

关键在while循环中,a = a * 10 + n % 10;

若n=123,a一开始是0,那么第一轮循环后a=0+3,n=n/10=12

此时a=3,第二轮循环后a=30+2,n=1

最后a=320+1即为321

最终判断a与num是否相等即可

ChatGPT的解释

这个C语言程序是一个简单的回文数检测器。它的功能是判断输入的数字是否是回文数。

程序的主要部分是函数 funmain 函数。

  1. fun 函数:
    • 接受一个整数 n 作为参数,用来检查这个数是否是回文数。
    • 定义了两个整型变量 anum,其中 a 用来存储 n 的反转数字,num 用来保存原始输入的数字。
    • 通过一个 while 循环,将 n 反转存储在变量 a 中。
    • while 循环中,每次取 n 的个位数字(通过取模操作 n % 10),并将其加到 a 的末尾(通过乘以 10 并加上余数 a * 10 + n % 10),然后将 n 更新为其除以 10 的结果,以便下一次循环处理下一位数字。
    • 最后,fun 函数通过比较反转后的数字 a 和原始数字 num 是否相等来判断是否为回文数,如果相等则返回 true,否则返回 false
  2. main 函数:
    • 主函数首先提示用户输入一个数字,并通过 scanf 函数将输入的数字存储在变量 num 中。
    • 然后调用 fun 函数,将用户输入的数字作为参数传递给它进行回文数的检测。
    • 根据 fun 函数的返回值,输出相应的信息,指示输入的数字是否为回文数。

回文数是指从前读到后和从后读到前都一样的数,比如 121、1331 等。这个程序通过反转输入的数字并与原始数字比较来判断是否是回文数。

© 版权声明
THE END
点赞15 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容