递归与递推c++

时间:2024-10-12 09:29:12

1.斐波那契数列 兔子生小兔子 继续生兔子 初始第0个月有一只兔子

(1)递归方法

#include <iostream>

using std::cin;
using std::cout;

long long f(long long n) {
	if (n < 2) {
		return 1;
	}
	else {
		return f(n - 1) + f(n - 2);
	}
}


int main() {
	long long month, total;
	cout << "请输入月份数:";
	cin >> month;
	total = f(month);
	cout << "兔子总数:" << total;
	return 0;
}

(2)递推方法

#include <iostream>

using std::cin;
using std::cout;


int main() {
	long long month;
	long long f[1000];
	f[0] = 1;
	f[1] = 1;
	cout << "请输入月份数:";
	cin >> month;
	for (int i = 2; i <= month; i++) {
		f[i] = f[i - 1] + f[i - 2];
	}
	cout << "兔子总数:" << f