4 斐波那契数列

news/2025/2/14 6:00:39/

4 斐波那契数列

作者: Turbo时间限制: 1S章节: 递归

问题描述 :

斐波那契数列的排列是:0,1,1,2,3,5,8,13,21,34,55,89,144……依次类推下去,你会发现,它后一个数等于前面两个数的和。在这个数列中的数字,就被称为斐波那契数。

递归思想:一个数等于前两个数的和。(这并不是废话,这是执行思路)

首先分析数列的递归表达式:

如果调用f(2),则可知,需要计算f(1)+f(0)=1+0

因此,可以知道,f(2)=1,递归函数f(n)总共被调用3次,其中使用实参为2、为1、为0各调用一次

如果计算f(4),则可知f(4)=f(3)+f(2), 而f(3)=f(2)+f(1), 继续调用,可知f(2)=f(1)+f(0)

从以上分析可知:

计算f(3),需要调用5次f(n)

计算f(4),需要调用9次f(n)

请使用递归方式实现本程序。

输入说明 :

输入一个整数n

输出说明 :

输出f(n)的值,以及总共需要调用几次f函数,中间以空格分隔。

输入范例 :

4

输出范例 :

3 9
 

 

#include <iostream>
using namespace std;int total = 0;
int circle(int n) {total++;if (n == 0) {return 0;}else if (n == 1) {return 1;}else if(n>1){return circle(n - 1)+circle(n - 2);}}int main() {int x = 0;cin >> x;int y = circle(x);cout << y << " " << total << endl;return 0;}


http://www.ppmy.cn/news/59935.html

相关文章

Kafka 消费者

一、消费者工作流程 1.1 总体工作流程 1.2 消费者组初始化流程 1.3 消费者组详细消费流程 二、消费者消费消息方式 ➢ pull&#xff08;拉&#xff09;模 式&#xff1a;consumer采用从broker中主动拉取数据。Kafka采用这种方式。 ➢ push&#xff08;推&#xff09;模式&am…

CommonJS规范

模块化 模块化解决的问题 代码的数量增多导致编写程序复杂度越来越高&#xff0c;此时如果依然将所有的代码编写到同一个文件中&#xff0c;代码就会变得非常难以维护&#xff0c;模块化就说解决这个问题的关键。什么是模块&#xff1f; 模块简单理解就是一个代码片段&#xf…

在一个真实的设备上调试Android应用

由于模拟器只包含很少的应用&#xff0c;可能只有一个处理某个动作的应用。为了更好地测试我们的应用&#xff0c;需要在一个真实的设备上运行这个应用。 可以按一下步骤在一个真实设备上运行你的应用。 1、启动设备上的USB调试选项 在你的安卓设备上&#xff0c;打开开发者选项…

JUC多并发编程 AQS

基础解释&#xff1a; 是用来实现锁或者其他同步器组件的公共基础部分的抽象实现,是重量级基础框架及整个JUC体系的基石&#xff0c;主要用于锁分配给“谁”的问题。整体就是一个抽象的 FIFO 队列来完成资源获取线程的排队工作&#xff0c;并通过一个 int 类变量表示持有锁的状…

【学习笔记】「JOISC 2022 Day4」复兴计划

先入为主给出结论&#xff1a;将 { X i } \{X_i\} {Xi​}离散化后&#xff0c;每条边的影响是一个区间。 然而我并没有想到可行的计算方法。 我真傻&#xff0c;真的。事实上 X i X_i Xi​变化的本质是边的加入顺序的变化。不妨考虑左端点的情形&#xff0c;首先将边按大小排…

Reinhart FoodService的EDI需求详解

Reinhart FoodService是一家成立于1972年的美国食品服务公司&#xff0c;隶属于上市公司Performance Food Group。Reinhart FoodService为餐馆、酒店、医院、学校等各类机构提供广泛的食品选择和相关服务&#xff0c;产品包括新鲜的肉类、禽类、海鲜、奶制品、烘焙用品、蔬菜和…

JavaScript全解析——canvas 入门(下)

canvas 线段两端的样式 ●canvas 中, 是可以设置线段两端的样子的 ●我们先来画三个平行线 // 0. 获取到页面上的 canvas 标签元素节点 const canvasEle document.querySelector(#canvas)// 1. 获取当前这个画布的工具箱 const ctx canvasEle.getContext(2d)// 2. 开始绘制第…

Java8新特性函数式编程 - Lambda、Stream流、Optional

1.Lambda表达式 1.1 概述 ​ Lambda是JDK8中一个语法糖。他可以对某些匿名内部类的写法进行简化。它是函数式编程思想的一个重要体现。让我们不用关注是什么对象。而是更关注我们对数据进行了什么操作。 1.2 核心原则 可推导可省略 1.3 基本格式 (参数列表)->{代码}例一…