打印本文 打印本文  关闭窗口 关闭窗口  
C趣味编程百例(08)回文数
作者:佚名  文章来源:不详  点击数  更新时间:2008/4/18 13:59:21  文章录入:杜斌  责任编辑:杜斌

28.回文数
    打印所有不超过n(取n<256) 的其平方具有对称性质的数(也称回文数)。
*题目分析与算法设计
    对于要判断的数n,计算出其平方后(存于a),将a的每一位进行分解,再按a的从低到高的顺序将其恢复成一个数k(如n=13,则a=169且k=961),若a等于k则可判定n为回亠数。
*程序说明与注释
#include<stdio.h>
void main()
{
    int m[16],n,i,t,count=0;
    long unsigned a,k;
    printf("No.    number     it’s square(palindrome)\n");
    for(n=1;n<256;n++)            /*穷举n的取值范围*/
    {
        k=0;t=1;a=n*n;            /*计算n的平方*/
        for(i=1;a!=0;i++)     /*从低到高分解数a的每一位存于数组m[1]~m[16]*/
        {
            m[i]=a%10;
            a/=10;
        }
    
    for(;i>1;i--)
    {
        k+=m[i-1]*t;
        t*=10;
    }
    if(k==n*n)
        printf("%2d%10d%10d\n",++count,n,n*n);
   } 
}
*运行结果
        No.            number            it’s square(palindrome)
        1                1                    1
        2                2                    4
        3                3                    9
        4                11                   121
        5                22                   484
        6                26                   676
        7                101                  10201
        8                111                  12321


        9                121                  14641
打印本文 打印本文  关闭窗口 关闭窗口