PTA题库函数递归 菲波那切数列(递归版)

请编写递归函数,求菲波那切(Fibonacci)数列某一项的值。

0, 1, 1, 2, 3, 5, 8, 13

, 21, 34, 55, 89, 144, ...

函数原型

double Fib(int index);

说明:参数 index 为数列项的索引号,从 0 开始计数。函数值为 Fibonacci 数列第 index 项的值。若 index 值无效,则函数值为 0。

裁判程序

#include <stdio.h>

double Fib(int index);

int main()
{
    int n;
    scanf("%d", &n);
    printf("%g\n", Fib(n));
    return 0;
}

/* 你提交的代码将被嵌在这里 */

这题讨厌的地方就在他非要你用递归实现,尽管效率低。

一下是我的做法:

double Fib(int index){
    return index<0?0:!index?0:index==1?1:Fib(index-1)+Fib(index-2);
}

按照题目要求排除无效输入情况(<0时),设置好递归结束条件(输入等于0和1时候)就ok了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值