每天一练——斐波那契数列前N项之和

2023-11-08

什么是斐波那契数列?

斐波那契数列就是前两项之和会等于第三项。

斐波那契数列通常以一为起始 :1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597……

正如我所说的前两项之和会等于第三项以此类推,那么我们要以什么方式来进行代码编写呢!方法如下:

先赞后看知识牢于心哦!!! 

目录

计算思路

 1.用递归的方式求出斐波那契数列

 2.使用循环计算斐波那契数列

结尾


计算思路

首先你要知道你要求的项是多少,例如:第N项,我们知道要求第N项就要求N的前两项之和才会等于N。所以(n-1)+(n-2)=n,N-1就是N的前一项,N-2就是N的前两项。那就可以知道N是怎么来的,那(n-1)中的N又是怎么来的呢!?也是(n-1-1)+(n-2-1)=(n-1)因此我们要以此类推一直找到第一项和第二项之和才会得到第三项。所以你要一直找到1 1才会得2 ,1 2才会得3。

设定一个函数  fbnq 

判断第一项和第二项是否为1,为1则返回1.不为1则继续找1.

用return 返回找到的斐波那契数再用循环一次打印出来

再循环中设一个sum来计算返回前N项和的值,最后打印输出

 1.用递归的方式求出斐波那契数列

运用递归的思想,求斐波那契数列前n项之和(n作为函数参数传递)。

①斐波那契数列的前六项:1,1,2,3,5,8

②斐波那契数列的前六项之和为:20

(规律:斐波那契数列第一项和第二项都为1,从第三项开始之后的每一项都等于其前两项之和)

#include<stdio.h>
int fbnq(int n)
{
	if (n == 1 || n == 2)
	{
		return 1;
	}
	else
	{
		return fbnq(n - 1) + fbnq(n - 2);
	}
}
int main()
{
	int n;
	int sum = 0;
	scanf("%d", &n);
	printf("斐波那契数列:");
	for (int i = 1; i <= n; i++)
	{
		printf("%d ", fbnq(i));
		sum += fbnq(i);
	}
	printf("\nsum=%d\n", sum);
	return 0;
}

 缺点:递归的运算效率太慢,输入一个较大的值的时候需要等待,所以一般情况下。题目不要求递归的使用就用循环来解决,下面是使用循环的方法:

值太大的话两种方法都会溢出,但是循环可以大大加快运算的效率

同时输入100项就可以知道差距啦!

 2.使用循环计算斐波那契数列

#include<stdio.h>
int fbnq(int n);//使用声明
int main()
{
	int n;
	int num = 0;
	int sum = 0;
	scanf("%d", &n);
	num = fbnq(n);
	printf("斐波那契数列:");
	for (int i = 1; i <=n; i++)
	{
		printf("%d ", fbnq(i));
		sum += fbnq(i);//计算N前项之和
	}
	printf("\nsum=%d\n", sum);
	return 0;
}
int fbnq(int n)
{
	if (n == 1 || n == 2)
	{
		return 1;
	}
	int n1 = 1;
	int n2 = 1;
	int num = 0;
	for (int i = 3; i <= n; i++)//第一项和第二项都是1,所以i要从第三项开始
	{
		num = n1 + n2;
		n2 = n1;
		n1=num;
	}
	return num;
}

结尾

今天的分享就到这里了,请点下你们手中的赞吧!你们的支持对我有这重大的认可,后面才会更加有动力分享哦!

谢谢你的观赏!

我是Try_harder,正在磕磕绊绊中成长~~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

每天一练——斐波那契数列前N项之和 的相关文章

  • WPF DataGrid 多选

    我读过几篇关于这个主题的文章 但很多都是来自 VS 或框架的早期版本 我想做的是从 dataGrid 中选择多行并将这些行返回到绑定的可观察集合中 我尝试创建一个属性 类型 并将其添加到可观察集合中 它适用于单个记录 但代码永远不会触发多个
  • 结构化绑定中缺少类型信息

    我刚刚了解了 C 中的结构化绑定 但有一件事我不喜欢 auto x y some func is that auto正在隐藏类型x and y 我得抬头看看some func的声明来了解类型x and y 或者 我可以写 T1 x T2 y
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • 随着时间的推移,添加到 List 变得非常慢

    我正在解析一个大约有 1000 行的 html 表 我从一个字符串中添加 10 个字符串 td 每行到一个list td
  • 为什么 GCC 不允许我创建“内联静态 std::stringstream”?

    我将直接前往 MCVE include
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 无限循环与无限递归。两者都是未定义的吗?

    无副作用的无限循环是未定义的行为 看here https coliru stacked crooked com view id 24e0a58778f67cd4举个例子参考参数 https en cppreference com w cpp
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • 如何定义一个可结构化绑定的对象的概念?

    我想定义一个concept可以检测类型是否T can be 结构化绑定 or not template
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置

随机推荐

  • 正则表达式和三剑客

    正则表达式与三剑客 Linux正则表达式 由一类特殊字符及文本字符所编写的模式 其中有些字符不表示其字面意义 而是用于表示控制或通配符的功能 分两类 基本正则表达式 BRE 扩展正则表达式 ERE 基本正则表达式DRE集合 元字符 作用 只
  • ROS环境搭建步骤总结

    ROS环境搭建踩坑总结 Ubuntu 16 04安装ROS Kinetic ROS安装 进入到 ROS官网选择安装的版本和系统 配置Ubuntu的repositories 以允许 restricted universe 和 multiver
  • vue element el-select下拉选择不回显问题

    el select下拉选择无效 问题描述 在使用Vue开发使用element ui时 el select下拉框出现在点击选择的时候数据无法显示的问题
  • MMX及SSE优化--SSE篇

    上回讲到针对整数运算的MMX优化技术 然而真正大运算量的图形和声音处理大都用的是浮点运算 而且现在对浮点运算的要求也是越来越高 在这样一个条件下INTEL终于在Pentium III处理中增加针对浮点运算优化的SSE指令 所以所有用过SSE
  • 初学者适合什么副业?适合初学者做的8个副业

    有网友曾说过 安全感是主业给的 但财富是靠副业创造的 可见 找一份靠谱的副业是多么的重要 但是 想找一份靠谱的副业 特别难 尤其是以前没有了解过的 看到各种副业吹嘘 根本无法下手 今天 聪少就给大家分享几个适合新手的副业 帮助大家快速走上副
  • 基于SpringBoot的外卖点餐管理系统

    项目背景 随着科学技术的飞速发展 各行各业都在努力与现代先进技术接轨 通过科技手段提高自身的优势社会的发展和科学技术的进步 互联网技术越来越受欢迎 网络计算机的生活方式逐渐受到广大人民群众的喜爱 也逐渐进入了每个用户的使用 互联网具有便利性
  • 基于STM32CUBEMX,HAL库蓝牙通信

    蓝牙通信 实现手机与stm32连接 1 准备工作 蓝牙模块HC 05模块 安卓APP软件 HC 05蓝牙模块支持AT指令 要进入AT指令模式 需要先按住蓝牙模块上的按键 接通电源 当模块上的LED灯进入慢闪后再松开按键 此时已经进入AT指令
  • vue-cli3.0引入高德地图3d效果两种方法+实例+填坑

    前言 因为项目需要引入高德地图的3d效果 找了很多资料 在这里记录下方法和实例组件 注意 因为两个方法代码量都特别大 这里分2个页面详细说一下 方法一是链接出去专门说 最下面有更多资料 高德3d官网地址和别的资料地址 方法一 使用官方案例
  • 掌握Python的X篇_32_使用python编辑pdf文件_pdfrw

    本篇介绍利用python操作pdf文件 我们平时也会有合并和拆分pdf的需求 此时我们就可以使用本节内容 文章目录 1 pdfrw的安装 2 切分pdf文件 3 pdfrw官网及实现一版四面的实例 1 pdfrw的安装 pip instal
  • React中函数组件和类式组件

    React中函数组件和类式组件 定义组件有两个要求 组件名称必须以大写字母开头 组件的返回值只能有一个根元素 1 函数组件 函数组件也称无状态组件 顾名思义就是通过函数编写的形式去实现一个React组件 是React中定义组件最简单的方式
  • 字符串 - 二进制和文本字符串 - 探究

    1 应用场景 主要用于探究字符串中的二进制和文本字符串 以及它们的区别和应用场景 2 学习 操作 1 文档阅读 重要来自于与chatgpt的对话问答 以及其他技术文章 2 整理输出 2 1 是什么 二进制和文本字符串都是计算机中常用的数据类
  • 相机触发模式

    一 图像采集模式分类 相机的图像采集模式分为内触发模式与外触发模式 其中内触发模式包含连续采集 单帧采集两种形式 外触发模式包含软件触发 硬件外触发 本文以海康相机的软件平台作介绍 该软件去海康机器人官网下载 内触发模式与外触发模式可以通过
  • matlab 降维工具

    降维工具箱drtool 这个工具箱的 主页如下 现在的最新版本是2013 3 21更新 版本v0 8 1b http homepage tudelft nl 19j49 Matlab Toolbox for Dimensionality R
  • 系统服务器地云盘上,系统服务器地云盘上

    系统服务器地云盘上 内容精选 换一换 磁盘增强型弹性云服务器自带高存储带宽和IOPS的本地盘 具有高存储IOPS以及读写带宽的优势 同时 本地盘的价格更加低廉 在海量数据存储场景下 具备更高的性价比 磁盘增强型弹性云服务器具备如下特点 本地
  • 依赖注入之@Value原理(整体流程)

    Autowired等注解 Spring依赖注入之 Autowired Qualifier Primary Priority注解用法 Spring依赖注入之 Autowired Qualifier Primary Priority注解原理 上
  • win10 蓝牙耳机已连接但是耳机仍没有声音,音频仍是扬声器输出问题的出现条件及解决方案

    此问题可能分电脑分耳机类型出现 本人因耳机Fill CC2连接笔记本频繁出现此问题故以此文记录 问题出现原因 疑似 1 笔记本后台挂的程序应用过多 且笔记本开机通电时间过长 2 连接蓝牙耳机时笔记本扬声器正在发声 解决方法 27条消息 wi
  • 【xgboost】贝叶斯自动调参代码

    工作中 很多场景下会用到xgboost模型 如风控 催收 营销 推荐等待 在用xgboost模型进行模型训练的时候 也经常用贝叶斯自动调参来搜索最优的参数 现在把相关的代码贴出来 供大家参考 目前是支持了xgboost和lightgbm模型
  • VS2010安装失败解决办法

    1 运行regedit打开注册表 2 找到HKEY LOCAL MACHINE SOFWARE Microsoft Internet Explorer MAIN 3 MAIN子键的权限问题 修改成 允许完全控制 MAIN子键点击右键里弹出权
  • 解决Vue引入百度地图JSSDK:BMap is undefined 问题

    百度地图官网文档介绍使用JSSDK时 仅提供了三种引入方式 script引入 异步加载 npm install vue baidu map save 或 cnpm install vue baidu map save 全局引入 但vue项目
  • 每天一练——斐波那契数列前N项之和

    什么是斐波那契数列 斐波那契数列就是前两项之和会等于第三项 斐波那契数列通常以一为起始 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 正如我所说的前两项之和会等于第三项以此类推 那么