当前位置导航:炫浪网>>网络学院>>网页制作>>ASP.NET教程

回文数算法

欢迎进入.NET社区论坛,与200万技术人员互动交流 >>进入

要求求给定范围内,且开方是整数的回文数!

        算法如下:          #include "stdio.h"

        int iFen(int *piOut,int iInput);

        int main()

        {

            int ia=999999999;

            printf("请输入一个整数\n");

            scanf("%d",&ia);

            int iOut[16];

            iFen(iOut,ia);

            return 0;

        }

        int iFen(int *piOut,int iInput)

        {

            int a,i,c,b;

 

            for( a=1;a<iInput;a++)

            {

                if(a*a>iInput)//平方数大于给定的数就返回

                    return 1;

        b=a*a;

        for( i=0;b!=0;i++)

        {

        piOut[i]=b%10;

        b/=10;

        }

        c=0;

        for(i--;i>c;c++,i--)

        {

            if(piOut[i]!=piOut[c])

                break;

        }

        if(i<=c)

        printf("%d\n",a*a);

            }

 

        return 1;

        }



        //-------------------------算法二这个是新补上去的!------------------------------          int iHuWe(int *piInput)//判断是否是回文数
        {
        static int temp;
        temp=0;
        for(int i=*piInput,*piOunt=0;i>0;i/=10) //按位将整数倒过来,产生反序数
        {
        temp=temp*10 + i%10;
        }
        view plaincopy to clipboardprint?
         if(temp==*piInput)
         {
          //printf("是回文数{%d}\n",*piInput);
        return 1;
         }
         else
          //printf("不是回文数{%d}!={%d}\n",*piInput,temp);
          return 0;
        }

相关内容
赞助商链接