实现一个函数,输入n,输出第n个斐波那契数
思路:可以使用递归和循环的方式分别实现。如果使用的递归,斐波那契数f(n)=f(n-1) + f(n-2)。如果使用循环实现,只要新建变量保存前面两个结果f(n-1)和f(n-2)就可以了。
C++
.h文件
#ifndef FibNumber_h
#define FibNumber_h
#include <stdio.h>
#endif /* FibNumber_h */
//n为第几个斐波那契数
int fibNumberRecursive(int n);
//n为第几个斐波那契数
int fibNumber(int n);
.cpp文件
#include "FibNumber.h"
int fibNumberRecursive(int n) {
if (n < 1) {
return 0;
}
if (n == 1 || n == 2) {
return 1;
}
return fibNumber(n - 1) + fibNumber(n - 2);
}
int fibNumber(int n){
if (n < 1) {
return 0;
}
if (n == 1 || n == 2) {
return 1;
}
int firstNumber = 1;
int secondNumber = 1;
for (int i = 2; i < n; i++) {
int tmp = firstNumber + secondNumber;
firstNumber = secondNumber;
secondNumber = tmp;
}
return secondNumber;
}
man函数
#include <iostream>
#include "FibNumber.h"
int main(int argc, const char * argv[]) {
for (int i = 1; i < 10; i++) {
std::cout<<"递归实现斐波那契数列"<<std::endl;
std::cout<<fibNumberRecursive(i)<<std::endl;
std::cout<<"循环实现斐波那契数列"<<std::endl;
std::cout<<fibNumber(i)<<std::endl;
}
return 0;
}