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

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

时间:2025-01-10 18:01:35浏览次数:3  
标签:方案 总数 爬楼梯 递归 int C++ lou 台阶

代码如下:

#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

 

标签:方案,总数,爬楼梯,递归,int,C++,lou,台阶
From: https://blog.csdn.net/2302_80266078/article/details/145038593

相关文章

  • 基于弦截法求解多项式函数根的 C++ 程序及其多领域延伸应用
    一、头文件部分#include<iostream>#include<cmath>#include<vector>#include<algorithm>#include<opencv2\opencv.hpp>#include<Eigen/Dense>#include<iostream>#include<complex>#include<unsupported/Eigen/Pol......
  • C++项目Visual Studio 如何在Release编译模式下断点调试
    在VS中,Debug编译模式下通常是默认支持断点调试的,但有时项目需要会需要在Release编译模式下进行打断点调试原因无外乎三点:Debug模式下编译运行无异常,但Release下出现问题需要release下屏蔽断言和部分宏定义win平台的动态库区分release和debug模式,部分项目......
  • 【C++】C++11(二)
    目录九、可变参数模板十、lambda表达式10.1C++98中的一个例子10.2lambda表达式10.3lambda表达式语法10.3.1lambda表达式各部分说明10.3.2捕获列表说明10.4函数对象与lambda表达式十一、包装器11.1function包装器11.2bind十二、线程库12.1线程12.1.1thread......
  • 通过循环展开减少循环控制的开销 c++实现
    循环展开是一种优化技术,通过减少循环控制的开销来提高程序性能。在C++中,可以通过手动展开循环来实现这一点。以下是如何在C++中实现循环展开的示例。示例:向量加法的循环展开我们将创建一个简单的向量加法示例,展示如何通过循环展开来提高性能。1.基本向量加法首先实现一个......
  • C++ 中使用预取指令可以帮助减少缓存未命中的延迟
    在C++中使用预取指令可以帮助减少缓存未命中的延迟,从而提高程序性能。以下是如何在代码中实现预取的详细步骤和示例。1.理解预取指令预取指令允许CPU提前加载数据到缓存中,从而在需要时可以更快地访问。这在处理大量数据时特别有用。例如,SSE2提供了_mm_prefetch指令。2.......
  • 在c++代码怎么实现数据对齐
    在C++中实现数据对齐可以通过以下几种方法:1.使用alignas关键字C++11引入了alignas关键字,可以用来控制变量的对齐方式。#include<iostream>#include<emmintrin.h>//SSE2alignas(16)floata[4]={1.0f,2.0f,3.0f,4.0f};alignas(16)floatb[4]={5.0f,6.0......
  • C++ 文件操作入门到实践:轻松搞定逐行读取,助力期末作业与毕业设计!
    ......
  • C/C++序列重构问题
    问题描述采儿是一位负责一班......
  • 【c++实战项目】负载均衡式在线OJ
    主页:醋溜马桶圈-CSDN博客专栏:实战项目_醋溜马桶圈的博客-CSDN博客gitee:mnxcc(mnxcc)-Gitee.com项目源码文件版:OnlineJudge_file:负载均衡在线OJ项目基于文件版本数据库版:mnxcc/OnlineJudge_MySQL目录1.项目目标2.技术与开发环境2.1技术2.2开发环境3.项目宏观......
  • C++泛型编程:类模版中成员函数的创建时机,类模版函数传参、类模版继承
    普通类的成员函数的话,在刚开始就创建出来了,但是类模版中的成员函数的话,只有在具体调用运行的时候才会被创建,可见以下代码例子:#include<iostream>usingnamespacestd;classpeople1{public: voidrun(){ cout<<"跑"<<endl; }};classcircle1{public: void......