方法一:

递归实现

#include<stdio.h>
#include<stdlib.h>

long long Fibonacci(unsigned int n)
{
	if (1 == n)
		return 1;
	if (0 == n)
		return 0;
	return Fibonacci(n - 1) + Fibonacci(n - 2);
}

int main()
{
	int n = 10;
	printf("%d",Fibonacci(n));
	system("pause");
	return 0;
}

核心代码:

long long Fibonacci(unsigned int n)
{
	if (1 == n)
		return 1;
	if (0 == n)
		return 0;
	return Fibonacci(n - 1) + Fibonacci(n - 2);
}

方法二:

#include<stdio.h>
#include<stdlib.h>
long long Fibonacci(int n)
{
	if (0 == n)
		return 0;
	if (1 == n)
	{
		return 1;
	}
	
	long long sum = 0;
	long long num1 = 0;
	long long num2 = 1;
	
	for (int i = 2; i <= n;i++)
	{
		sum = num1 + num2;
		num1 =num2;
		num2 =sum;
		
	}
	return sum;
}

int main()
{
	int n = 10;
	printf("%d",Fibonacci(n));
	system("pause");
	return 0;
}

核心代码:

long long Fibonacci(int n)
{
	if (0 == n)
		return 0;
	if (1 == n)
	{
		return 1;
	}
	
	long long sum = 0;
	long long num1 = 0;
	long long num2 = 1;
	
	for (int i = 2; i <= n;i++)
	{
		sum = num1 + num2;
		num1 =num2;
		num2 =sum;
		
	}
	return sum;
}