- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章c语言 跳台阶问题的解决方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
题目:一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。求总共有多少种跳法,并分析算法的时间复杂度。 答:用一个函数f(n)来表示n级台阶总的跳法。 1、只有1个台阶,则f(1) = 1; 2、有2个台阶,则f(2) = 2; 3、当有n个台阶时,如果第一次跳1级,有f(n-1)种跳法,如果第一次跳2级,有f(n - 2)种跳法,即f(n) = f(n-1) + f(n-2)。 即为Fibonacci序列.
复制代码 代码如下
#include "stdafx.h" #include <iostream> using namespace std; //循环 int TotalStep(int n) { if (n <= 0) { return 0; } else if (1 == n || 2 == n) { return n; } int first = 1; int second = 2; int total = 0; for (int i = 3; i <= n; i++) { total = first + second; first = second; second = total; } return total; } //递归 int RecurTotalStep(int n) { if (n <= 0) { return 0; } else if (n == 1 || n == 2) { return n; } else { return RecurTotalStep(n - 1) + RecurTotalStep(n - 2); } } int _tmain(int argc, _TCHAR* argv[]) { cout<<TotalStep(20)<<endl; cout<<RecurTotalStep(20)<<endl; return 0; } 。
运行界面如下:
最后此篇关于c语言 跳台阶问题的解决方法的文章就讲到这里了,如果你想了解更多关于c语言 跳台阶问题的解决方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我是一名优秀的程序员,十分优秀!