C语言回文串 您所在的位置:网站首页 写回文句 C语言回文串

C语言回文串

2024-07-02 01:25| 来源: 网络整理| 查看: 265

回文数、回文字符串的判断 一、回文数,回文串的描述:

形如 ‘1 2 3 4 3 2 1’ 这样的数字,我们称为回文数。

形如 ‘ a s d 1 2 3 2 1 d s a ’ 这样的字符串,我们称为回文串。

注:即正着读和反着读可以得到同样的结果

二、回文字符串的判断

(1).通过一维动态数组从键盘读入要判断的字符串。

a=(char*)malloc(sizeof(char)*len); for(int i=0;i char temp; for(int i=0;i for(int i=0;i for(int i=0;i printarray(array_record,len); printf(" is a palindrome number string!"); } else { printarray(array_record,len); printf(" is not a palindrome number string!"); } return 0; } 调试结果:

调试结果

对于单独的字符串,可用以上所述进行判断,对于需要连续判断的回文数,应该怎么做呢?

例如:请输出1000~10000的回文数。

想想要是把每一个数都进行字符数组存储,然后转置,在进行判断是否为回文数,那么这个算法的复杂度就超出我们想象了。于是我们提出了逆数处理(就是把这个数反向表达,如123 转换为321,其实也是逆置的思想)

下面来看看具体如何做吧~~~~~

一、我们需要输入要求的范围:(如1000~10000) 二、算法设计: int re=0;//存放逆置的数 int j = i;//标记要判断的数 while(i>0) { re*=10;//将取出来的数(十位变百位) re+=i%10;//取出高位数字 i/=10;//这个数缩小10,进行下一个高位处理 } 三、源代码 #include #include int palindrome(int i) { int re=0;//存放逆置的数 int j = i;//标记要判断的数 while(i>0) { re*=10;//将取出来的数(十位变百位) re+=i%10;//取出高位数字 i/=10;//这个数缩小10,进行下一个高位处理 } if(re==j) return 1; else return -1; } int main() { int xia_xian,shang_xian,j; printf("please input the bound of number:"); fflush(stdout); scanf("%d %d",&xia_xian,&shang_xian); for(int i=xia_xian;i printf("%4d ",i); j++; } if(j==10) { printf("\n"); j=0; } } return 0; } 调试结果:

在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有