关于 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++;
} 展开
我的源代码
#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++;
} 展开
1个回答
展开全部
斐波那契数列
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;
}
}
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;
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询