首页 > 技术文章 > 判读回文的几种方法

hiashu 2017-08-15 20:59 原文

 1 #include <stdio.h>
 2 int palind(char str[],int k,  int i)/*自定义函数检测是否为回文字符串*/
 3 {
 4   if(str[k]==str[i-k]&&k==0)/*递归结束条件*/
 5     return 1;
 6   else if(str[k]==str[i-k])/*判断相对应的两个字符是否相等*/
 7     palind(str,k-1,i);    /*递归调用*/
 8   else
 9     return 0;
10 }
11 
12 main()
13 {
14   int i=0,n=0;/*i记录字符个数,n是函数返回值*/
15   char ch,str[20];
16   printf("\nplease input string:\n");
17   while ((ch=getchar())!='\n')
18     {
19       str[i]=ch;
20       i++;
21     }
22   if(i%2==0)/*当字符串中字符个数为偶数时*/
23     n=palind(str,(i/2),i-1);
24   else
25     n=palind(str,(i/2-1),i-1);/*当字符串中字符个数为奇数时*/
26   if(n==0)
27     printf("not palindrome");/*当n为0说明不是回文数,否则是回文数*/
28   else
29     printf("palindrome");
30   getch();
31 }

 

推荐阅读