关于 C++ 实现的登楼问题,我在代码中已经定义了全局变量,但是总是出现变量未定义的情况,求大牛解决。

题目:某高楼有n阶楼梯,上楼时,可以一步上一个阶,也可以一步上二阶。编一程序,从输入n(1<=n<=20)值,然后求出所有的上楼的不同方案数。我的源代码#include<... 题目:某高楼有n阶楼梯,上楼时,可以一步上一个阶,也可以一步上二阶。编一程序,从输入n(1<=n<=20)值,然后求出所有的上楼的不同方案数。
我的源代码
#include <iostream>
using namespace std;

int count=0,tot=0;
int n;

int main()
{
//freopen("up.in","r",stdin);
//freopen("up.out","w",stdout);
void up(long i);
cin>>n;
up(0);
cout<<tot<<endl;
system("pause");
return 0;
}

void up(long i)
{
int j,k;
if (i+1<=n)
{
count+=1;
up(i+1);
count-=1;
}
if (i+2<=n)
{
count+=2;
up(i+2);
count-=2;
}
if (count=n) tot++;
}
展开
 我来答
yinjinmi
2012-02-16 · 超过66用户采纳过TA的回答
知道答主
回答量:120
采纳率:0%
帮助的人:196万
展开全部
斐波那契数列
f(n) = f(n-1)+f(n-2)
可以理解为第n层只能从n-1层或者n-2层上来
编程很容易实现

你的代码我这里编译没问题,不存在变量没定义的错误

#include<iostream>
using namespace std;
int main()
{
int f[41]={0,0,1,2};
for(int i=4;i<=40;i++)
{
f[i]=f[i-1]+f[i-2];
}
int k;
cin>>k;
for(int i=0;i<k;i++)
{
int j;
cin>>j;
cout<<f[j]<<endl;
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式