题目:
写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项。斐波那契数列的定义如下:
知识点:
递归:是在一个函数的内部调用这个函数自身。循环:则是通过设置计算的初始值及终止条件,在一个范围内重复运算。
通常基于递归实现的代码比基于循环实现的代码要简介很多,更加容易实现。如果面试官没有特殊要求,应优先采用递归的实现方法。
#include<stdio.h>#include<stdlib.h>// Fibonacci 斐波那契数列// 0 1 1 2 3 5 8 13 21 35 56... // f(n)=f(n-1)+f(n-2)// 两个递归出口 f(1)=1 f(2)=1int fib(int n);int main(){int i,n;printf("请输入要计算到第几项斐波那契数列:");scanf("%d",&n);for(i=0;i<=n;i++)printf("结果是fib(%d)=%d\n",n,fib(n));}int fib(int n){if(n==0) //考虑第0项return 0;else if(n==1||n==2)return 1;elsereturn (fib(n-1)+fib(n-2));}