递归算法—输入字母逆序输出&汉诺塔递归算法
来源:互联网 发布:淘宝达人链接 编辑:程序博客网 时间:2024/06/05 06:04
1.概念
递归——将一个大的问题分解成比较小的、有着相同形式的问题。递归是一种强有力的思想。在计算机科学的学习中,一个重要的必须学习的概念是递归。递归是一种编程策略,它把一个大的问题分解成具有相同形式的简单问题。递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。
2.代码
1)递归实现输入字母逆序输出
#include <stdio.h>void print(){char a;scanf("%c", &a);if (a != '#') print();if (a != '#') printf("%c", a); //倒着打印出输入字符}int main(){printf("输入字符,以 # 结束。 \n");while (1){print();}return 0;}
2)汉诺塔递归算法
#include <stdio.h>//将 n 个盘子从 x 借助 y 移动到 zvoid move(int n, char x, char y, char z){if (1 == n){printf("%c--->%c\n", x, z);}else{move(n - 1, x, z, y); //将n-1个盘子从 x 借助 z 移动到 yprintf("%c--->%c\n", x, z); //将第n - 1个盘子从 x 移动到 zmove(n - 1, y, x, z); //将 n - 1 个盘子从 y 借助 x 移动到 z}}int main(){int n;printf("输入汉诺塔层数:");scanf("%d", &n);printf("移动步骤如下:\n");move(n, 'x', 'y', 'z');return 0;}
3.结果
阅读全文
0 0
- 递归算法—输入字母逆序输出&汉诺塔递归算法
- 逆序输出递归算法
- 链表的逆序输出 递归算法
- 逆序输出递归算法(java版本)
- 递归算法实现字符串的逆序输出
- 逆序数递归算法
- 将一个整数逆序输出,分别给出递归和非递归算法
- 数组逆序输出(递归)
- 递归逆序输出字符串
- 递归逆序输出字符串
- algrothm_ 逆序输出【递归】
- 简单算法--一个整形数逆序输出后正序输出/一段精彩的递归代码
- 递归练习-字母输出
- 递归算法反序输出字符串
- 由“栈的逆序”谈谈递归算法
- 算法题:链表的递归逆序
- 递归算法实现字符串的逆序存储
- 递归算法实现字符串的逆序存储
- ASP.NET MVC三种创建方式
- 深度学习笔记——Word2vec和Doc2vec应用举例:词和句子的相似度计算
- A*算法解决八数码问题 Java语言实现
- Digit Counts 解题报告
- LeetCode 582
- 递归算法—输入字母逆序输出&汉诺塔递归算法
- 创建https请求
- 竖式问题
- 虚拟地址到物理地址的转换
- CodeForces
- (转)Ubuntu使用教程:E: 无法获得锁 /var/lib/apt/lists/lock
- EOJ 3247 铁路修复计划 (最小生成树+二分)
- HDU 4586 Play the Dice(概率入门)
- 回文数