C语言面试经典题目:[1]斐波那契数列

2025-05-21 13:06:46

1、一、斐波那契数列。 斐波那契数列是什么这里就不再赘述了,我介绍一下经常见到的其衍生题。比如一次登一个或两个台阶,问登n个台阶有多少种可能?青蛙一次跳一下或两下,问跳n下有几种可能?铺地砖问题等等都是使用斐波那契数列解决。

C语言面试经典题目:[1]斐波那契数列

2、二、斐波那契数列的求解。 对于斐波那契数列,我们往往采用递归的思想进行求解,求解方案很简单,编码如下:

C语言面试经典题目:[1]斐波那契数列

3、三、n种解法的列举。 对于斐波那契数列,求出其种类数比较简单,如何列举出每种可能的组合呢?

4、四、n种解法的实现。 在这里我们用回溯法对n种解法进行列举,具体实现代码如下:

C语言面试经典题目:[1]斐波那契数列

5、五、综合解镙龟陛鹜析。 整体代码的实现: #include <stdio.h>#include <stdlib.h媪青怍牙>#include <string.h>static int step[128];static int m = 1;int count(unsigned int n);void cout(int n,int t);int main(){ int a; unsigned int n; while(1){ printf("请输入需要登上的台阶数量:"); scanf("%d",&n); a = count(n); printf("登上%d个台阶共有%d种方法!分别如下:\n",n,a); cout(n,0); m=1; } system("pause"); return 0;}int count(unsigned int n){ if(n == 1) return 1 ; if(n == 2) return 2 ; else return count(n - 1) + count(n - 2) ;}void cout(int n,int t){ int i,j; if(n<0) return ; if(n == 0) { printf("第%d种方法:",m); for(j=0;j<t;j++) printf("%d ",step[j]); m++; printf("\n"); } else { for(i=1;i<=2;i++) { step[t] = i; cout(n-i,t+1); } }}

C语言面试经典题目:[1]斐波那契数列

6、六、运行情况一。

C语言面试经典题目:[1]斐波那契数列

7、七、运行情况二。

C语言面试经典题目:[1]斐波那契数列
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢