什么是回文数

来源:互联网 发布:mash up软件下载 编辑:程序博客网 时间:2024/06/06 02:28

//什么是回文数
/*正读和倒读都有意义的文字称为“回文”。例如,小白是一个名字,如果反过来,白小,也可以是一个人名,
这个人姓小名白。王融有诗《春游回文诗》中的诗句“风朝指锦幔,月晓照莲池”,反读也是有意义的,不信你读读。
而“回文数”,则是一种数字。例如,65856,这个数正读是65856,倒读也是65856,这样的数就是回文数。
数学中有著名的“回文数猜想”之谜,至今没有解决。该问题描述的是:任取一个数,把它倒过来,并将这两个数相加,
然后这个和数倒过来,与原来的和数相加,重复这个过程,一定能获得一个回文数。*/
//判断回文数

#include<stdio.h>#include<conio.h>int palind(char str[],int k,int i)  //自定义函数检测是否为回文字符串 {    if(str[k]==str[i-k]&&k==0)  //递归结束条件        return 1;    else if(str[k]==str[i-k])   //判断相对应的两个字符是否相等         palind(str,k-1,i);     //递归调用    else        return 0;            }main(){    int i=0,n=0;    //i记录字符个数,n是函数返回值    char ch,str[20];    while((ch=getchar())!='\n')    {        str[i]=ch;        i++;     }     if(i%2==0)  //当字符串中字符个数为偶数时         n=palind(str,(i/2),i-1);     else        n=palind(str,(i/2-1),i-1);  //当字符串中字符个数为奇数时     if(n==0)        printf("Not palindrome!\n");    //当n为0时说明不是回文数,否则是回文数     else        printf("Palindrome!\n");    getch(); }
0 0