递归和非递归分别实现求第n个斐波那契数
例如:
输入:5 输出:5
输入:10, 输出:55
输入:2, 输出:1
第一种方法:循环法
int main() //循环规律法 算出斐波那契数
{
int n = 0;
scanf("%d", &n);
int ros = 0;
int a = 1;
int b = 1;
int i = 0;
if (n == 1 || n == 2)
printf("%d ", 1);
else
{
for (i = 3; i <= n; i++)
{
ros = a + b ;
a = b;
b = ros;
}
}
printf("%d ", ros);
return 0;
}
第二种方法 :递归法
int prin(int n) //用函数递归实现算斐波那契数
{
if (n == 1 || n == 2)
return 1;
return (prin(n - 1) + prin(n - 2));
}
int main()
{
int n = 0;
scanf("%d", &n);
int m = prin(n);
printf("%d ", m);
return 0;
}