码迷,mamicode.com
首页 > 编程语言 > 详细

算法分析之爬楼梯问题

时间:2019-10-09 09:14:57      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:mic   bsp   inpu   爬楼梯   time   问题   main   算法   names   

一个人每次只能走一层楼梯或者两层楼梯,问走到第n层楼梯一共有多少种方法
利用动态规划实现如下:

#include <iostream>
using namespace std;
 
const int MAX = 100;  
int result[MAX];
int fib_time(int n) {
	int res;
	if (result[n]>0)    //若大于零,说明该子问题原来已经求过解  
		return result[n];   //直接返回对应的数组元素  
	if (n == 0 || n == 1)
		res = 1;
	else
		res = fib_time(n - 1) + fib_time(n - 2);
	result[n] = res;  //每次都将求过解的子问题赋给对应数组元素  
	return res;
}
int main() {
	int i = 0;
	int n = 0;
 
	cout << "Please input the number of Stairs:" << endl;
	cin >> n;
 
	for (i = 0; i <= n; i++)
	{
		result[i] = -1;
	}
		
	cout << "The differ_way_number is:"<<endl<<fib_time(n) << endl;;
	return 0;
}

 测试:

技术图片

 

算法分析之爬楼梯问题

标签:mic   bsp   inpu   爬楼梯   time   问题   main   算法   names   

原文地址:https://www.cnblogs.com/khnl/p/11639454.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!