问题引入
Fibonacci为1200年代的欧洲数学家,在他的着作中曾经提到:「若有一只免子每个月生一只小免 子,一个月后小免子也开始生产。起初只有一只免子,一个月后就有两只免子,二个月后有三 只免子,三个月后有五只免子(小免子投入生产)......。类似的道理也可以用于植物的生长,这就是Fibonacci数列,一般习惯称之为费氏数列,例 如以下: 1、1 、2、3、5、8、13、21、34、55、89......
借助的思想
函数的 递归 调用。
图示分析
C语言 实现
1.代码
#include <stdio.h>
#include <stdlib.h>
int fib(int n){
if(n<3){
return 1;
}else{
return (fib(n-1)+fib(n-2));
}
}
int main() {
int i;
int n;
printf("请输入求第几项Fibonacci级数:");
scanf("%d",&n);
printf("第 %d 项的Fibonacci级数值为:%d \n",n,fib(n));
return 0;
}
2.运行结果
C++ 实现
1.代码
#include<iostream>
#include<math.h>
using namespace std;
int fib(int n){
if(n<3){
return 1;
}else{
return (fib(n-1)+fib(n-2));
}
}
int main(){
cout<<"C++:\n\n";
int n;
cout<<"请输入求第几项Fibonacci级数:";
cin>>n;
cout<<"第"<<n<<"项的Fibonacci级数值为:"<<fib(n)<<endl;
return 0;
}
2.运行结果