现在的位置: 首页 > 综合 > 正文

27 跳台阶,跳1级或2级,求总共多少跳法

2018年01月20日 ⁄ 综合 ⁄ 共 420字 ⁄ 字号 评论关闭
/*
27 跳台阶,跳1级或2级,求总共多少跳法
27.跳台阶问题 
60
题目:一个台阶总共有n级,如果一次可以跳 1  级,也可以跳 2  级。
求总共有多少总跳法并分析算法的时间复杂度

简单题 ,递推即可 
f(n)=f(n-1)+f(n-2), f(1)=1, f(2)=2;

递归实现,也是最慢的,算法时间复杂度O(n^2)
算法时间复杂度O(n)
*/
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;

int fun(int n)
{
	int i,f[100];
	if(n==1||n==2) return n;
	f[1]=1;f[2]=2;
	
	for(i=3;i<=n;i++)
	{
		f[i]=f[i-1]+f[i-2];	
	}
	return f[n];
}
int main()
{

	int n;
	
	while(cin>>n)
	{
		printf("台阶总共有%d级,总共有%d总跳法\n",n,fun(n));	
	} 
	return 0;
}

抱歉!评论已关闭.