编程菜鸟的日记-初学尝试编程-回文数的判断

//如3,121,313,34443,12121都是回文数

#include <iostream>

using namespace std;

int judge(int m)

{//首先将输入的整数m按每位进行存储

//假设m=12121,则定义数组a[5]={1,2,1,2,1}

      int temp,a[10];

      int i,t;//i存储为m的位数,t为每位上的具体数字

      temp=m;

      while(temp!=0)

        {

           t=temp%10;

           a[i]=t;

           temp=temp/10;

           i++;

         }

        int *p=a;

        int *q=a+i-1;

        while(p<q)

          { 

              if(*p!=*q)

                 break;

              else

                 {

                    p++;

                    q--;

                 }

           }

        if(p<q)

          {

             cout<<"不是"<<endl;

           }

       else

          {

            cout<<"是"<<endl;

          }

cout<<m<<endl;

}

int main()

{

   int m;

    cout<<"请输入整数m";

    cin>>m;

    Judge(m);

    system("pause");

    return 0;

总结:1)如何将整数m的每位存储在数组中

         2)设置两个指针,一个指向数组首元素,另一个指向数组有效长度的末位(注意:并不是数组的末位)

         3)首位指针逐渐递增,末位指针逐渐递减,直到首位不小于末位地址。

发散:如果是字符串,如何判断?

        如果是字符串abcdefbdcba,如何返回回文字符串最大长度以及回文字符串"abcd"?

 

posted @ 2013-10-23 12:50  编程的爬行者  阅读(198)  评论(0编辑  收藏  举报