C语言递归的应用之回文字符
来源:互联网 发布:国产 cpu.知乎 编辑:程序博客网 时间:2024/05/22 05:05
递归应用之回文字符的判别:
有一种特殊形式的字符串,其正反序相同,被称为“回文字符串”。例如LeveL就是一个回文字符串。
输入:
字符串
输出:
Yes或者No
说明:
如输出Yes,说明输入的字符串是一个回文字符串
输出No,说明输入的字符串不是一个回文字符串
请使用递归算法实现。
- #include<stdio.h>
- #include<string.h>
- int huiwen(char str[],int a,int b )
- {
- if(str[a]!=str[b]) {
- return 0;
- }
- else if(a==b||(a+1==b&&str[a+1]==str[b])) {
- return 1;
- }
- else if(str[a]==str[b]) {
- return huiwen(str,a+1,b-1);
- }
- }
- int main()
- {
- char str[800];
- int t,p;
- gets(str);
- t=strlen(str);
- if(t==0)
- printf("Yes\n");
- else {
- p=huiwen(str,0,t-1);
- if(p==1)
- printf("Yes\n");
- else if(p==0)
- printf("No\n");
- }
- return 0;
- }
递归算法首先要明确算法的结束标志,在这个代码中,如果是回文数,结束标志是(a==b||(a+1==b&&str[a+1]==str[b])),就是当判断到了最后一组数了,应当结束,通常递归中使用if语句来作为判断语句。
特别的,在这个算法中,不断传的是数组,变换的是下标,也可以直接直接变换数组,return huiwen(str++,a,b,),此时实参直接从str1开始传给形参。
0 0
- C语言递归的应用之回文字符
- 回文之递归应用
- 回文字符用递归的解法
- C语言字符数组的应用
- 递归---回文字符
- C语言之递归
- C语言之递归函数的使用
- 【学习ios之路:C语言】函数及递归的简单应用
- C语言回文数简单应用
- 由一个C语言递归判断回文数的程序产生的回忆
- 杂记之C语言的转义字符
- C语言之字符数据的输入输出
- 递归的力量之回文判断
- C语言之尾递归
- C语言之递归函数
- C语言 之递归函数
- c语言之递归调用
- C语言之递归函数
- R语言学习(三)
- ios开发,6种手势的创建方法
- HHKB pro2 type s入手纪念~
- java Socket(阻塞) api记录点
- Unity3D工程MAC导入Windows报错
- C语言递归的应用之回文字符
- CentOS卸载并安装新版jdk(tar,rpm)
- Tomcat7配置数据源
- ASM 下 SPFILE 启动问题
- 2.17 数组循环移位
- C++为什么用初始化列表初始化类的成员变量
- NYOJ 题目743复杂度(数学)
- 我个人理解的C++面向对象的类
- 内存(SDRAM、DDR SDRAM)基本原理一