再帰的アルゴリズム2-単純な再帰的フィボナッチ数列(再帰的方法)

フィボナッチ数列は、次のような数列を指します。

0、1、1、2、3、5、8、13、21、... 3番目の数字から始まり、各数字は最初の2つの数字の合計です。フィボナッチ数列の最初のn項を出力するアルゴリズムを記述します。

【分析】
フィボナッチ数列は次の式で書くことができます。

fibibacci(n)= \ begin {cases} 0&n = 0 \\ 1&n = 1 \\ fibibacci(n-1)+ fibibacci(n-2)&n = 2,3,4、... \ end {cases}

n = 4の場合、fibibacci(4)の値を見つけるプロセスを次の図に示します。

その中で、図の網掛け部分が対応する関数値です。fibibacci(4)の値を見つけるには、fibibacci(3)とfibibacci(2)の値を知る必要があり、fibibacci(3)の値を見つけるには、fibibacci(3)の値を知る必要があります。 2)とfibibacci(1)、およびfibibacci(2)の値を見つけます。値はfibibacci(1)とfibibacci(0)の値を知る必要があります。fibibacci(1)= 1、fibibacci(0)= 0なので、直接戻ります。

コード:

#include<stdio.h>
#include <iostream>
int fib(int n);
void main()
{
	int n;
	printf("请输入项数:");
	scanf("%d", &n);
	printf("第%d项的值:%d\n", n, fib(n));
	system("pause");
}
int fib(int n)
{
	if (n == 0)
		return 0;
	if (n == 1)
		return 1;
	if (n > 1)
		return fib(n - 1) + fib(n - 2);
	
}

結果:

 

おすすめ

転載: blog.csdn.net/baidu_36669549/article/details/104133121