分别用递归和迭代实现斐波那契数列
my_main.c
#include"my_declare.h"
#include<stdio.h>
int main()
{
printf("%d\n", hd_fibonacci(4));
printf("%d\n", dd_fibonacci(5));
}
my_func.c
#include"my_declare.h"
/*
**递归函数
*/
long hd_fibonacci(int n)
{
if (n <= 2) {
return 1;
}
else
{
return hd_fibonacci(n - 1) + hd_fibonacci(n - 2);
}
}
/*
**迭代函数
*/
long dd_fibonacci(int n)
{
long result;
long previous_result;
long next_older_result;
result = previous_result = 1;
while (n > 2) {
n -= 1;
next_older_result = previous_result;
previous_result = result;
result = previous_result + next_older_result;
}
return result;
}
my_declare.h
long hd_fibonacci(int n);
long dd_fibonacci(int n);