利用数组,实现回文数的判断

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

任务:利用数组,实现回文数的判断

#include<iostream>using namespace std;bool isPalindrome(int);int main()int m,n; cout<<"求多少以内的回文数?"<<endlcin>>m; for(n=1;n<=m;++n)  if(isPalindrome(n))   cout<<n<<" "return 0;}bool isPalindrome(int n)int a[20]; //用于存储n中的各位数 int i=0//下面的循环,使a数组中依次存放个、十、百……位数 while(n>0) {  a[i++]=n%10;  n/=10; } //退出循环,可以知道n为i位数 int j=0,k=i-1while(a[j]==a[k]&&j<k)//只要两边的数相等,齐往中间“看”  j++,k--; if(j>=k)   return true//前后两端对应的数字都比较过了,都相等,是回文数 else   return false;}

  拓展:利用上面的比较算法,可以判断一个字符串是否是回文(真正的文),典型的回文,如"level"。试编写这样的程序。本文最后还附一组古人的回文诗,值得欣赏。


  后记:写本文,源于有网友发来求助信让我看看下面的程序。其中用到了数组,是或以作为一种思路,再看到静态变量(并且还是全局的),尤其是goto语句,感觉到完全没有必要了。想去理出个头绪来,但如此难读,这种程序不读也罢,不管能不能完成任务,即使领着初学者读懂了,也是将人往沟里带的程序。交朋友要有选择,读程序也是这样。

  下面是原程序,粗读一下,当作反面材料好了。注意在实际工作中,静态变量、全局变量能不用就不用,而用高级语言编程,goto语句更是不要去用,有的是办法替代。

#include<iostream>using namespace std;int a[20]; //可以通过改变元素的多少来改变所求整数的范围static int i=0;void f(int);void f(int n){lp:for(n;n>=10;n--)   {    int N=n;    for(i=0;i<10;i++) //用循环将一个整数的各位分离出来    {     if(N/10==0)     {      a[i]=N;      break;     }     else     {      a[i]=N;      N/=10;     }    }    int b=i;    for(i,b;i>=0;i--) //用来判断是否为回文数!    {     if(a[i]==a[b-i]) continue;     else     {      n--;      goto lp;     }    }    cout<<n<<endl;   }}void main()int n=0cout<<"求多少以内的回文数?"<<endlcin>>n; f(n);}

附:明末浙江才女吴绛雪《四时山水诗》,诗云: ——自http://baike.baidu.com/view/46546.htm

  莺啼岸柳弄春晴夜月明,
  香莲碧水动风凉夏日长,
  秋江楚雁宿沙洲浅水流,
  红炉透炭炙寒风御隆冬。
  这首十字回文诗,每句来回复读,可成一首七言绝句。四首绝句,也描写四时景色。
  春 景 诗
  莺啼岸柳弄春晴,柳弄春晴夜月明。
  明月夜晴春弄柳,晴春弄柳岸啼莺。
  夏 景 诗
  香莲碧水动风凉,水动风凉夏日长。
  长日夏凉风动水,凉风动水碧莲香。
  秋 景 诗
  秋江楚雁宿沙洲,雁宿沙洲浅水流。
  流水浅洲沙宿雁,洲沙宿雁楚江秋。
  冬 景 诗
  红炉透炭炙寒风,炭炙寒风御隆冬。
  冬隆御风寒炙炭,风寒炙炭透炉红。


           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这里写图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值