Google:有100阶楼梯,从底往上爬,每次爬1阶或2阶,编算法说明共有多少走法?A(N)=A(N-1)+A(N-2) 你需要上多少层N就是多少.能大致解释下这是为什么吗?理由,我没看明白.
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/08 17:51:47
Google:有100阶楼梯,从底往上爬,每次爬1阶或2阶,编算法说明共有多少走法?A(N)=A(N-1)+A(N-2) 你需要上多少层N就是多少.能大致解释下这是为什么吗?理由,我没看明白.
Google:有100阶楼梯,从底往上爬,每次爬1阶或2阶,编算法说明共有多少走法?
A(N)=A(N-1)+A(N-2) 你需要上多少层N就是多少.
能大致解释下这是为什么吗?理由,我没看明白.
Google:有100阶楼梯,从底往上爬,每次爬1阶或2阶,编算法说明共有多少走法?A(N)=A(N-1)+A(N-2) 你需要上多少层N就是多少.能大致解释下这是为什么吗?理由,我没看明白.
我们可以这么算,就是爬阶梯的人爬了多少个2阶,如果一个没有那只有一种爬法.如果有1个2阶的话那么剩下的98个阶梯就有99个空格(算上开始和最末尾的2个位置),爬法就是C1 99(就是99的阶乘,能看懂么?)同理得到2个2阶的话就是C2 97·······················25个2阶就是C25 51,26个2阶到50个2阶和前面的数量一样,所以结果是(1+C1 99+C2 97·········C25 51)*2 我记得这样有规律的阶乘是不是有个计算公式的.现在我不记得了,太久了.
设n为楼梯的阶数(n>=2,n∈N*),F(n)为按你那样走的走法数目,其中F(1)=1,F(2)=2;
其中有个规律就是F(n)=F(n-1)+(n-2),这其实是个斐波那契数列的应用,而你要问这规律是怎么得出来的,这你应该去看看斐波那契数列的有关知识了,懂得如何求它的通项公式,这个也就理解了。百度下斐波那契数列吧,希望能够帮到你。
而对于编写算法我想有很多的例子,我想你也知道,...
全部展开
设n为楼梯的阶数(n>=2,n∈N*),F(n)为按你那样走的走法数目,其中F(1)=1,F(2)=2;
其中有个规律就是F(n)=F(n-1)+(n-2),这其实是个斐波那契数列的应用,而你要问这规律是怎么得出来的,这你应该去看看斐波那契数列的有关知识了,懂得如何求它的通项公式,这个也就理解了。百度下斐波那契数列吧,希望能够帮到你。
而对于编写算法我想有很多的例子,我想你也知道,现在给出一个C语言的递归方法吧(这个抄的),
#include
int fibonacci (int n)
{
if (n > 2)
return fibonacci(n - 1) + fibonacci(n - 2);
else
return 1;
}
int main()
{
int data[20];
int t;
int i;
printf ("Please input T and the nums: \n");
scanf ("%d", &t);
for (i=0; i
scanf("%d", &data[i]);
}
printf("The output: \n");
for (i=0; i
printf("%d\n", fibonacci (data[i]+1));
}
return 0;
}
自己也学习了,望采用。
收起
我们可以这么算,就是爬阶梯的人爬了多少个2阶,如果一个没有那只有一种爬法。如果有1个2阶的话那么剩下的98个阶梯就有99个空格(算上开始和最末尾的2个位置),爬法就是C1 99(就是99的阶乘,能看懂么?)同理得到2个2阶的话就是C2 97·······················25个2阶就是C25 51,26个2阶到50个2阶和前面的数量一样,所以结果是(1+C1 99+C2 97···...
全部展开
我们可以这么算,就是爬阶梯的人爬了多少个2阶,如果一个没有那只有一种爬法。如果有1个2阶的话那么剩下的98个阶梯就有99个空格(算上开始和最末尾的2个位置),爬法就是C1 99(就是99的阶乘,能看懂么?)同理得到2个2阶的话就是C2 97·······················25个2阶就是C25 51,26个2阶到50个2阶和前面的数量一样,所以结果是(1+C1 99+C2 97·········C25 51)*2 我记得这样有规律的阶乘是不是有个计算公式的。。现在我不记得了,太久了。。。
收起