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

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

【项目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;
}
时间: 2024-10-04 09:36:55

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

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

返回:贺老师课程教学链接  项目要求 [项目6-回文日]很有趣的一个题目:2011年11月02日是一个回文日:2011 1102,在2011级同学做这道题时我们刚刚度过这一天!请列出本世纪还有多少个回文日(假如我们能活到百岁,你和我的--).注意:一年只有12个月.[参考解答]     当年份确定后,如2015年,就看20155102能否构成一个合法的日期,其中51部分是月,02部分是日.显然,由2015就不能得出一个回文日.    再如,当年份取2090年时,20900902,由2090可以构

c语言-关于用【C语言】写——回文数——的代码【高级语言程序设计】

问题描述 关于用[C语言]写--回文数--的代码[高级语言程序设计] 问题:判定用户输入的正整数是否为"回文数". 回文数即121,232正面读反面读都相同的数, 运用c语言来编写一个程序代码. #include main() . . . 谢谢大神们了(>_<) 解决方案 http://blog.sina.com.cn/s/blog_5072a15d0100msdb.html 解决方案二: http://www.bianceng.cn/Programming/C/20140

C++回文数及素数问题计算方法_C 语言

本文实例讲述了C++回文数及素数问题计算方法.分享给大家供大家参考,具体如下: /* * 作 者: 刘同宾 * 完成日期:2012 年 11 月 16 日 * 版 本 号:v1.0 * * 输入描述: 编制一个返回值为bool型的函数isPrimer(),用于判断参数是否为素数,isPalindrome()用于判断参数是否是回文数,调用函数回答以下问题(可以分别编制几个程序完成,也可以在一个main()函数中完成,输出时,用明显的提示语,说明正在完成哪个任务.) (1)输出10000以内的所有素

c语言-特殊回文数,大神们帮忙看一看,为什么编译通过而不会运行

问题描述 特殊回文数,大神们帮忙看一看,为什么编译通过而不会运行 123321是一个非常特殊的数,它从左边读和从右边读是一样的. 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n . 输入格式 输入一行,包含一个正整数n. 输出格式 按从小到大的顺序输出满足条件的整数,每个整数占一行. 样例输入 52 样例输出 899998 989989 998899 #include int main() { int a,b,c,d,e,f,n,m; scanf("%dn&quo

c语言-C语言求回文数,满足m,m*m和m*m*m均为回文数

问题描述 C语言求回文数,满足m,m*m和m*m*m均为回文数 C语言求回文数,满足m,m*m和m*m*m均为回文数 编程求出11~999之间的回文数 解决方案 http://zhidao.baidu.com/link?url=J6jUedovjtgkY_S7HCLan1mMkWtPOuAMp_UOyQhknhcPebh_fAYjMrATK4snNimhu9gZev0tFUGuTFGCnAGHwa 参考

C语言中判断一个数是否是回文数

注:回文数即数字顺着和反着是同一个数! 看了郝斌老师的C语言视频,虽然还只看了80多个,但是还是有一些体会,编程应该养成良好的编程风格,至少到现 在为止写的这些小程序都应该有下面这样一个过程: 1,流程:(知道程序是按照怎样的顺序运行的) 2,功能:(理解程序的作用) 3,试数:(我个人简单的理解为测试过程,把自己当作计算机去执行程序) /* 2012年4月20日 10:36:23 判断一个数是否是回文数 */ #include <stdio.h> int main(void) { int v

求助c语言回文数问题~~~

问题描述 求助c语言回文数问题~~~ #include<stdio.h> int main() { int i,t=0,s=0; for(i=1000;i<10000;i++,s=0,t=0){ t=i; while(t){ s=s*10+t%10; t/=10; } if(s==i) printf("%d",i); } return 0; } 结果是0分...... 请问哪里错了 解决方案 每个输出是不是需要一个换行呢? #include<stdio.h>

2014秋C++第11周项目6参考-回文、素数

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课程主页中查看.  [项目6-回文.素数](1)编制一个函数reverse,返回给定数据的"反序数",例如输入1234,输出4321.请编制reverse函数,在下面代码的基础上补充相关的部分,实现要求的功能. int main() { int m,n; cin>>m; n=re

c语言-请问如何用C语言判断一个整型的数是否为回文数

问题描述 请问如何用C语言判断一个整型的数是否为回文数 请教各位大神,如何用C语言判断一个整型的数是否为回文数? 解决方案 http://blog.163.com/ah..zhangrui/blog/static/539258022009105111759703/ 解决方案二: 把数字截取成数,按下标比较就可以了 解决方案三: 左右判断 是否对称 http://blog.csdn.net/u012605629/article/details/44648377 解决方案四: 楼主,程序直接给你,够