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

    xiaoxiao2025-12-11  3

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

    【项目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; 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; 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+m/10; //n和m比,个位、十位恰互换 printf("%d\t", m*100+n); } printf("\n"); return 0; }

    相关资源:数据结构课程设计(用C语言解决猴子吃桃问题)
    最新回复(0)