Bootstrap

C++:爬楼梯问题,设有阶台阶需要攀登,每次只能上1阶或2阶,问共有多少种上台阶方案。程序输入为台阶数,输出为上台阶方案总数。

代码如下:

#include<iostream>
using namespace std;

int lou(int x)
{
	if (x == 1 || x == 2)
		return x;
	else
		return lou(x - 1) + lou(x - 2);
}

int main()
{
	int n;
	cout << "请输入台阶数:";
	cin >> n;
		cout <<"上台阶方案总数为"<< lou(n);
	return 0;
}

解释如下:

这个函数 lou 用于计算上 x 级台阶的方案总数。它使用了递归的方法:

  • 递归终止条件:当 x 等于 1 或 2 时,直接返回 x。这是因为上 1 级台阶只有 1 种方法,上 2 级台阶有 2 种方法(一次上 1 级,分两次上;或者一次上 2 级)。
  • 递归调用:对于大于 2 的 x,上 x 级台阶的方案总数等于上 x - 1 级台阶的方案总数加上上 x - 2 级台阶的方案总数。这是基于一个递推关系:要到达第 x 级台阶,要么从第 x - 1 级台阶上一步到达,要么从第 x - 2 级台阶上两步到达。

 

觉得有帮助就给博主点个关注叭~~

有问题的可以私信或者在评论区一起交流

友友们一起加油叭QAQ

 

;