《C语言及程序设计》实践参考——回文数-阿里云开发者社区

开发者社区> 人工智能> 正文

《C语言及程序设计》实践参考——回文数

简介: 返回:贺老师课程教学链接  项目要求 【项目4-回文数】(1)输入一个正整数,判断其是否为一个回文数(例1221、12321都是回文数,正着看、倒着看,是同一个数)。[参考解答] #include <stdio.h> int main() { int n,m,k; scanf("%d", &n); k=n; m=0; //m将为n的反

返回:贺老师课程教学链接  项目要求


【项目4-回文数】
(1)输入一个正整数,判断其是否为一个回文数(例1221、12321都是回文数,正着看、倒着看,是同一个数)。
[参考解答]

#include <stdio.h>
int main()
{
    int n,m,k;
    scanf("%d", &n);

    k=n;
    m=0;  //m将为n的反序数
    while(k>0)
    {
        m=m*10+k%10;
        k=k/10;
    }
    if(m==n)   //n等于其反序数,则为回文数
        printf("Yes\n");
    printf("\n");
    return 0;
}


(2)输出10000以内的所有回文数。
[参考解答]

解法1:

#include <stdio.h>
int main()
{
    int n,m,k;
    int count=0;
    for(n=1; n<10000; n++)
    {
        k=n;
        m=0;  //m将为n的反序数
        while(k>0)
        {
            m=m*10+k%10;
            k=k/10;
        }
        if(m==n)   //n等于其反序数,则为回文数
        {
            printf("%d\t", n);
            count++;
            if(count%8==0)
                printf("\n");
        }
    }
    return 0;
}


解法2:
#include <stdio.h>
int main()
{
    int m,n;
    //个位数全是回文数
    for(m=1; m<=9; ++m)
        printf("%d\t", m);
    //下面凑出所有两位的回文数
    for(m=1; m<=9; ++m)
        printf("%d\t", m*10+m);
    //下面凑是所有三位的回文数
    for(m=1; m<=9; ++m)
        for(n=0; n<=9; ++n)
            printf("%d\t", m*100+n*10+m);
    //下面凑出所有四位的回文数
    for(m=10; m<=99; ++m)
    {
        n=(m%10)*10+m/10; //n和m比,个位、十位恰互换
        printf("%d\t", m*100+n);
    }
    printf("\n");
    return 0;
}


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
人工智能
使用钉钉扫一扫加入圈子
+ 订阅

了解行业+人工智能最先进的技术和实践,参与行业+人工智能实践项目

其他文章