大连博硕网站建设,dw做网站背景音乐,wordpress用户名密码破解,如何建设部网站查职称文章目录 1.汉诺塔问题2.青蛙跳台阶问题 1.汉诺塔问题
//汉诺塔问题#xff08;递归实现#xff09;
//思路#xff1a;1.将A中n-1个盘子放入B中#xff0c;剩下最后一个#xff08;第n个#xff09;盘子放入C中。2.将B中n-1个盘子放入A中#xff0c;剩下最后一个… 文章目录 1.汉诺塔问题2.青蛙跳台阶问题 1.汉诺塔问题
//汉诺塔问题递归实现
//思路1.将A中n-1个盘子放入B中剩下最后一个第n个盘子放入C中。2.将B中n-1个盘子放入A中剩下最后一个第n个放入C中。#include stdio.hvoid move(char x, char y)
{printf(%c - %c\n, x, y);
}void Hanoi(int n, char a, char b, char c)
{if (n 1){move(a, c);}else{Hanoi(n - 1, a, c, b);move(a, c);Hanoi(n - 1, b, a, c);}
}int main()
{int n 0;scanf(%d, n);Hanoi(n, a, b, c);return 0;
}2.青蛙跳台阶问题
//青蛙跳台阶问题递归实现
//一只青蛙一次可以跳一级台阶或二级台阶和三级台阶。
//当N1时有1种跳法。
//当N2时首先可以跳两个一级台阶或一个二级台阶有2种跳法
//当N3时首先可以跳一次一级台阶剩下二级台阶N2时有两种跳法。跳一次三级台阶一种跳法。跳一次二级台阶剩下一级台阶N1时有1种跳法则共四种方法
//当N4时首先可以跳一次一级台阶剩下三级台阶N3时有4种跳法。跳一次二级台阶剩下二级台阶N2时有2种跳法。跳一次三级台阶剩下一级台阶,N1时1种跳法。则共7种方法.
#include stdio.hint dance_step(int n)
{if (n 1)return 1;if (n 2)return 2;if (n 3)return 4;if (n 3)return dance_step(n - 1) dance_step(n - 2) dance_step(n - 3);
}int main()
{int n 0;scanf(%d, n);int sum dance_step(n);printf(%d\n, sum);return 0;
}