波拉契尔数列 C++

题目:写一个函数,输入n, 求斐波那契数列的第n项。

f(n)=\left\{\begin{matrix} 0, n=0 & & & \\ 1, n=1& & & \\ f(n-1)+f(n-2),n>1& & & \end{matrix}\right.

分析:该题有两种实现方式递归或循环。当n比较大的时候f(n)结果也会比较大,故定义的时候可以采用long(int 也行)。递归会有大量的重复计算,而循环可以把f(n-1)和f(n-2)的值存起来,避免过多的重复计算。

上代码,先递归再循环。

#include<iostream>#include<cstdlib>#include <stdio.h>#include<time.h>long Fibonacci(unsigned int n){if (n == 0)return 0;if (n == 1)return 1;return Fibonacci(n - 2) + Fibonacci(n - 1);}int main(){clock_t start, end;int n = 40;start = clock();int result=Fibonacci(n);end = clock();double time = (end - start)/ CLOCKS_PER_SEC;printf("%d %f", result,time);system("pause");}

输出结果为

 
  1. #include<iostream>#include <stdio.h>#include<time.h>long Fibonacci(unsigned int n){if (n == 0)return 0;if (n == 1)return 1;long FibsubOne = 1;long FibsubTwo = 0;long Fib=0 ;int i = 2;while (i <= n){Fib = FibsubOne + FibsubTwo;FibsubTwo = FibsubOne;FibsubOne = Fib;++i;}return Fib;}int main(){clock_t start, end;int n =40;start = clock();int result=Fibonacci(n);end = clock();double time = (end - start)/ CLOCKS_PER_SEC;printf("%d %f", result,time);system("pause");}

     

结果显示

所以给各位初学者一个tips,虽然递归的代码真的很简洁,但是其效率比循环低很多,在很多时候并不推荐用递归。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/313000.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Deepin 下 使用 Rider 开发 .NET Core

国产的 Deepin 不错&#xff0c;安利一下。Deepin 用了也有一两年&#xff0c;也只是玩玩&#xff0c;没用在开发上面。后来 Win10 不太清真了&#xff0c;就想着能不能到 Deepin下撸码。要搞开发&#xff0c;首先少不了 IDE&#xff0c;VS2019 用不来&#xff0c;Vs Code 太复…

求旋转数组的最小数字C++

发现还是数组这种最简单的编码才适合我&#xff0c;遇到树&#xff0c;链表这些真的是一头雾水&#xff0c;自己也不知道怎么实现。言归正传&#xff0c;该篇文章介绍如何求旋转数组的最小值&#xff0c;求最大值可以适当改编即可。 什么是旋转数组呢&#xff0c;就是将一个数…

[视频演示].NET Core开发的iNeuOS物联网平台,实现从设备PLC、云平台、移动APP数据链路闭环...

此次我们团队人员对iNeuOS进行了全面升级&#xff0c;主要升级内容包括&#xff1a;&#xff08;1&#xff09; 设备容器增加设备驱动&#xff0c;包括&#xff1a;西门子&#xff08;S7-200smart、S7-300、S7-400、S7-1200、S7-1500&#xff09;、三菱&#xff08;FxSerial…

707 设计单链表

第一次完成这样的设计&#xff0c;一路磕磕碰碰&#xff0c;遇到了许多问题&#xff0c;最后终于一一解决了。感恩https://blog.csdn.net/lym940928/article/details/81276658 题目如下&#xff1a; 设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两…

选择开源项目什么最重要?

开发人员在决定是否使用某个开源项目时考虑到的最重要事项是什么&#xff1f;代码质量&#xff1f;安全性&#xff1f;好的文档&#xff1f;上述因素都很重要&#xff0c;但根据 Tidelift 和 The New Stack 的联合调查&#xff0c;控制着开源项目的开源许可证才是最需要考量的因…

leetcode 二进制求和 addBinary

题目描述&#xff1a; 给定两个二进制字符串&#xff0c;返回他们的和&#xff08;用二进制表示&#xff09;。 输入为非空字符串且只包含数字 1 和 0。 示例 1: 输入: a "11", b "1" 输出: "100" 示例 2: 输入: a "1010", b…

居然不知道和的区别?

前言那年刚找工作那会&#xff0c;就碰到过这么一个简单的题目“&和&&的区别” 那时知识面窄&#xff0c;大概也就知道1.都是作为逻辑与的运算符。2.&&具有短路功能&#xff0c;计算出前者false&#xff0c;就不需计算后者的true or false。后来在微信群里…

两数之和,输入有序数组 leetcode C++

给定一个已按照升序排列 的有序数组&#xff0c;找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值 index1 和 index2&#xff0c;其中 index1 必须小于 index2。 说明: 返回的下标值&#xff08;index1 和 index2&#xff09;不是从零开始的。你可以假设每…

【DevOps进行时】自动化测试之单元测试

在DevOps建设中&#xff0c;主流的测试分层体系可以分为单元测试、接口测试和界面测试。Google曾提出一个经验法则&#xff1a;70%的小型测试&#xff0c;20%的中型测试&#xff0c;10%大型测试。当然&#xff0c;这个比例不是确定的&#xff0c;不同类型的项目&#xff0c;测试…

反转字符串中的单词 III leetcode

给定一个字符串&#xff0c;你需要反转字符串中每个单词的字符顺序&#xff0c;同时仍保留空格和单词的初始顺序。 示例 1: 输入: "Lets take LeetCode contest" 输出: "steL ekat edoCteeL tsetnoc" 注意&#xff1a;在字符串中&#xff0c;每个单词由单…

Zongsoft.Data 发布公告

很高兴我们的 ORM 数据访问框架(Zongsoft.Data)在历经两个 SaaS 产品的应用之后&#xff0c;今天正式宣布对外推广。它是一个类 GraphQL 风格的 ORM(Object/Relational Mapping) 数据访问框架。又一个轮子&#xff1f;在很长时间里&#xff0c;.NET 阵营似乎一直缺乏一个被普遍…

leetcode 旋转数组

给定一个数组&#xff0c;将数组中的元素向右移动 k 个位置&#xff0c;其中 k 是非负数。 示例 1:输入: [1,2,3,4,5,6,7] 和 k 3 输出: [5,6,7,1,2,3,4] 解释: 向右旋转 1 步: [7,1,2,3,4,5,6] 向右旋转 2 步: [6,7,1,2,3,4,5] 向右旋转 3 步: [5,6,7,1,2,3,4] 示例 2…

使用 .NET Core模板引擎创建自定义的模板和项目

本文要点.NET CLI 包含了一个模板引擎&#xff0c;它可以直接利用命令行创建新项目和项目项。这就是“dotnet new”命令。默认模板集涵盖了默认控制台和基于 ASP.NET 的应用程序以及测试项目所需的基本项目和文件类型。自定义模板可以创建更加有趣或定制化的项目和项目项&#…

leetcode 岛屿的个数

给定一个由 1&#xff08;陆地&#xff09;和 0&#xff08;水&#xff09;组成的的二维网格&#xff0c;计算岛屿的数量。一个岛被水包围&#xff0c;并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。 示例 1: 输入: 11110 11010…

.NET Core前后端分离快速开发框架(Core.3.0+AntdVue)

时间真快&#xff0c;转眼今年又要过去了。回想今年&#xff0c;依次开源发布了Colder.Fx.Net.AdminLTE(254Star)、Colder.Fx.Core.AdminLTE(335Star)、DotNettySocket(82Star)、IdHelper(47Star)&#xff0c;这些框架及组件都是本着以实际出发&#xff0c;实事求是的态度&…

leetcode 两数相加

给定两个非空链表来表示两个非负整数。位数按照逆序方式存储&#xff0c;它们的每个节点只存储单个数字。将两数相加返回一个新的链表。 你可以假设除了数字 0 之外&#xff0c;这两个数字都不会以零开头。 示例&#xff1a; 输入&#xff1a;(2 -> 4 -> 3) (5 ->…

.Net开发3年,应聘大厂惨遭淘汰,如何翻身打脸面试官?

(设计师忘记了&#xff0c;这里还有个双十一福利课&#xff0c;还能1元秒杀&#xff01;)

leetcode 无重复字符的最长子串

给定一个字符串&#xff0c;找出不含有重复字符的最长子串的长度。 示例 1: 输入: "abcabcbb" 输出: 3 解释: 无重复字符的最长子串是 "abc"&#xff0c;其长度为 3。示例 2: 输入: "bbbbb" 输出: 1 解释: 无重复字符的最长子串是 "b&q…

面对金九银十铜十一你真的准备好了吗?

作者&#xff1a;回首笑人间&#xff0c;高级Java工程师一枚&#xff0c;热爱研究开源技术&#xff0c;架构师社区合伙人&#xff01;前言&#xff1a;又是一年一度的金九银十跳槽季&#xff0c;回首在经历了半个月的求职奔波后&#xff0c;终于又能安稳的静下心来敲代码了&…

深入理解二叉搜索树

什么是二叉搜索树&#xff1f; 顾名思义&#xff0c;一颗二叉搜索树是基于二叉树来组织的&#xff0c;它包括许多动态集合操作&#xff08;Search&#xff0c;MiniNum, MaxiNum, Prodecessor, Successor, Insert 和Delete等&#xff09;。二叉搜索树上的基本操作所花费的时间与…