6-3 递归求Fabonacci数列 (10 分)

6-3 递归求Fabonacci数列 (10 分)

本题要求实现求Fabonacci数列项的函数。Fabonacci数列的定义如下:

f(n)=f(n?2)+f(n?1) (n≥2),其中f(0)=0,f(1)=1。

函数接口定义:

int f( int n );

  

函数f应返回第n个Fabonacci数。题目保证输入输出在长整型范围内。建议用递归实现。

裁判测试程序样例:

#include <stdio.h>

int f( int n );

int main()
{
    int n;

    scanf("%d", &n);
    printf("%d\n", f(n));

    return 0;
}

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

  

输入样例:

6

  

输出样例:

8

  

int f( int n )
{
    if(n == 0)
        return 0;
    else if(n == 1)
        return 1;
    else
        return f(n - 2) + f(n - 1);
}

  

原文地址:https://www.cnblogs.com/Jie-Fei/p/10145080.html

时间: 2024-10-08 03:55:35

6-3 递归求Fabonacci数列 (10 分)的相关文章

递归求Fabonacci数列

https://pintia.cn/problem-sets/12/problems/356 1 int f(int n) 2 { 3 int ret; 4 5 if (n == 0) 6 { 7 ret = 0; 8 } 9 else if (n == 1) 10 { 11 ret = 1; 12 } 13 else 14 { 15 ret = f(n - 1) + f(n - 2); 16 } 17 18 return ret; 19 } 原文地址:https://www.cnblogs.c

递归 求1+2+3+....+10

# 递归 求1+2+3+....+10function sum($total = 0,$num){    $total += $num;    if($num == 1) {        return $total;    }else{        return sum($total,$num -1);    }}echo sum(0,10); result:55

9.9递归和动态规划(八)——给定数量不限的硬币,币值为25分,10分,5分,1分,计算n分有几种表示法

/** * 功能:给定数量不限的硬币,币值为25分,10分,5分,1分,计算n分有几种表示法. */ public static int makeChange(int n){ return makeChange(n,25); } /** * 递归的终止条件:完全简化为1分. * @param n * @param denom * @return */ public static int makeChange(int n,int denom){ int next_denom=0; switch(d

249 递归:概念,利用递归求1~n的阶乘,利用递归求斐波那契数列,利用递归遍历数据

6.1什么是递归 递归:如果一个函数在内部可以调用其本身,那么这个函数就是递归函数. 简单理解: 函数内部自己调用自己, 这个函数就是递归函数 注意:递归函数的作用和循环效果一样,由于递归很容易发生"栈溢出"错误(stack overflow),所以必须要加退出条件return. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"&g

【编程题目】题目:定义 Fibonacci 数列 输入 n,用最快的方法求该数列的第 n 项。

第 19 题(数组.递归):题目:定义 Fibonacci 数列如下:/ 0 n=0f(n)= 1 n=1/ f(n-1)+f(n-2) n=2输入 n,用最快的方法求该数列的第 n 项. 思路:递归和非递归的 下面的代码有个问题,没有考虑大数越界.返回值应该设成long long型的 递归速度非常慢 /* 第 19 题(数组.递归): 题目:定义 Fibonacci 数列如下: / 0 n=0 f(n)= 1 n=1 / f(n-1)+f(n-2) n=2 输入 n,用最快的方法求该数列的第

C语言用递归求斐波那契数,让你发现递归的缺陷和效率瓶颈

递归是一种强有力的技巧,但和其他技巧一样,它也可能被误用. 一般需要递归解决的问题有两个特点: 存在限制条件,当符合这个条件时递归便不再继续: 每次递归调用之后越来越接近这个限制条件. 递归使用最常见的一个例子就是求阶乘,具体描述和代码请看这里:C语言递归和迭代法求阶乘 但是,递归函数调用将涉及一些运行时开销--参数必须压到堆栈中,为局部变量分配内存空间(所有递归均如此,并非特指求阶乘这个例子),寄存器的值必须保存等.当递归函数的每次调用返回时,上述这些操作必须还原,恢复成原来的样子.所以, 基

递归求阶乘和

6-2 递归求阶乘和 (10 分) 本题要求实现一个计算非负整数阶乘的简单函数,并利用该函数求 1!+2!+3!+...+n! 的值. 函数接口定义: double fact( int n ); double factsum( int n ); 函数fact应返回n的阶乘,建议用递归实现.函数factsum应返回 1!+2!+...+n! 的值.题目保证输入输出在双精度范围内. 裁判测试程序样例: include <stdio.h> double fact( int n ); double f

利用递归求阶乘

1 package com.d; 2 3 import java.util.Scanner; 4 5 public class Digui { 6 7 public static void main(String[] args) { 8 Digui d = new Digui(); 9 10 System.out.println("请输入一个整数"); 11 Scanner scan = new Scanner(System.in); 12 int a = scan.nextInt()

递归学习(一)最简单的C语言递归求年龄算法

递归是我们在学习编程中,必须要去学习的,虽然递归晦涩难懂 ,但是很多时候,递归的思想会很有用,但是在实际开发中,不建议使用递归,要用循环来代替递归,不然bug无穷. ----------------------------------------------------------- 问题描述: 有5个人坐在一起, 问第5个人,他说比第4个人大2岁, 问第4个人,他说比第3个人大2岁, 问第3个人,他说比第2个人大2岁, 问第2个人,他说比第1个人大2岁, 问最后一个人,他说10岁 第5个人多大