维度网络网站建设建筑英才招聘网首页

news/2025/9/28 8:45:43/文章来源:
维度网络网站建设,建筑英才招聘网首页,西安建设网站制作,长春做网站企业在线题目链接#xff1a;斐波那契数列 文章目录1、题目描述2、题目分析3、代码3.1 递归方法3.11 Java代码3.12 C代码3.2 动态规划3.21 Java代码3.22 C代码3.3 循环方法3.31 Java代码3.32 C代码4、总结1、题目描述 大家都知道斐波那契数列#xff0c;现在要求输入一个整数n斐波那契数列 文章目录1、题目描述2、题目分析3、代码3.1 递归方法3.11 Java代码3.12 C代码3.2 动态规划3.21 Java代码3.22 C代码3.3 循环方法3.31 Java代码3.32 C代码4、总结1、题目描述 大家都知道斐波那契数列现在要求输入一个整数n请你输出斐波那契数列的第n项从0开始第0项为0。 n39 2、题目分析 有高中的数学知识就应该知道斐波那契数列是这样的1,1,2,3,5,8… 如果f(n)代表斐波那契数列第n项的值那么 既然我们已经可以得出公式了那就很好写代码。最容易明白的就是递归了上面的公式其实就是一个递归的公式。 下面提供多种解法递归动态规划循环。 3、代码 3.1 递归方法 递归解法很简单 3.11 Java代码 public class Solution {public int Fibonacci(int n) {//递归解法if(n1)return n;return Fibonacci(n-1)Fibonacci(n-2);} }3.12 C代码 class Solution { public:int Fibonacci(int n) {//递归解法,超时if(n1)return n;return Fibonacci(n-1)Fibonacci(n-2);} };我们都知道这种递归解法会有很多重复的计算就像下面的假设我们要计算f(10): 计算f(10)要重复计算两次f8三次f7三次f6这种重复计算对于数据比较大的时候开销是非常大的。所以我们经常说递归虽然好写但是不建议在实现算法的时候使用递归算法。 3.2 动态规划 凡是能用递归写出的代码一定能够用动态规划写出来。 我们知道递归是为了求某一个值而必须先知道另外的几个值后才能求出来。而想要求那另外的几个值还需要再求另外的另外的值就像上面的递归二叉树想要先求f10必须知道f9和f8。想要知道f9又得知道f8和f7… 上面递归是想要计算总体值需要求局部的值想要求局部的值又要求局部的局部的值。 动态规划不是这样动态规划是先从递归的终止条件开始计算也就是说动态规划先计算局部的值然后根据局部的值的累积最终得到整体要求的值。也就是与递归反过来了。 比如针对上面的求f10我们先求f1f2f3…最终肯定会求得f10。这样我们就没有进行重复的计算。每一项都是只计算一次。 看代码就能明白上面说的是什么意思了。下面的ret数组ret[i]代表斐波那契数组的第i项。我们要求得第n项最后求到ret[n]直接返回即可。 3.21 Java代码 public class Solution {public int Fibonacci(int n) {//动态规划if(n1)return n;int[] retnew int[n1];ret[0]0;ret[1]1;int i;for(i2;in;i){ret[i]ret[i-1]ret[i-2];}return ret[n];} }3.22 C代码 class Solution { public:int Fibonacci(int n) {//动态规划//if(n1)return n;不知道这里为什么不能加这个int ret[n1];ret[0]0;ret[1]1;int i;for(i2;in;i){ret[i]ret[i-1]ret[i-2];}return ret[n];} };3.3 循环方法 所有的递归都可以写成动态规划同理所有的动态规划也一定能写成循环。只不过有的动态规划不好写成循环而已。本题是非常好写成循环的。 循环比动态规划好的原因在于循环只用几个变量循环使用它们得到最终结果不保存之前的计算结果动态规划却需要开辟一个数组将所有计算过的结果保存这很浪费空间。 3.31 Java代码 public class Solution {public int Fibonacci(int n) {//循环if(n1)return n;int ret0;int r00,r11;int i;for(i2;in;i){retr0r1;r0r1;r1ret;}return ret;} }当然上面使用三个变量我们还可以再减少一个变量使用两个变量 public class Solution {public int Fibonacci(int n) {if(n1)return n;int r10,r21,i;for(i2;in;i){r2r1;r1r2-r1;}return r2;} } 3.32 C代码 三个变量 class Solution { public:int Fibonacci(int n) {//循环if(n1)return n;int ret0;int r00,r11;int i;for(i2;in;i){retr0r1;r0r1;r1ret;}return ret;} };两个变量 class Solution { public:int Fibonacci(int n) {if(n1)return n;int r1 0, r2 1,i;for(i2;in;i){r2r1;r1r2-r1;}return r2;} };4、总结 注意学会递归动态规划循环三者时间的关系 探讨学习加 个人qq1126137994 个人微信liu1126137994

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

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

相关文章

使用python写一个应用程序要求实现微软常用vc++功能排查与安装功能

import os import sys import subprocess import re import requests import tempfile import platform from bs4 import BeautifulSoup import winregclass VCRedistManager:def __init__(self):self.supported_versi…

网站建设尺寸规范网络营销策划案的形式

给AWS新账户做完了对等连接,因为默认VPC网段都冲突 就换了VPC,然后发现新VPC内创建的实例都没有分配公网IP地址,自动分配公网IP地址变成了禁用。后续建机子需要手动修改成启用太麻烦了。 在VPC里面找到编辑子网设置,勾上启用自动…

网站建设全网营销客户资源心理咨询网站后台

传统蜂窝网络一般基于特定接入技术并针对大规模公共网络设计,无法灵活适配小规模网络以及异构无线技术。本文介绍了Magma在构建低成本异构无线接入方面的探索。原文: Building Flexible, Low-Cost Wireless Access Networks With Magma 摘要 当今仍然有数十亿人受限…

网站内容更新教程泰安网站开发公司

1.三次握手的概述 我们在学网络的概念时,每当讲到TCP都会听到三次握手和四次挥手,一直以来可能都对这个概念模糊不清,那么什么是三次握手和四次挥手呢?简单的举一个例子,如果我们和朋友打游戏,我们要和朋友…

广西壮族自治区住房和城乡建设厅网站手机网站开发源码

目录 一、什么是sql注入 二、sql语句的执行流程 三、内连接和外连接的区别 四、Union和Union All 有什么区别 五、MySql如何取差集 六、DELETE和TRUNCATE有什么区别 七、count(*)和count(1)的区别 八、MyISAM和InnoDB的区…

详细介绍:MySQL零基础学习Day4——多表查询

详细介绍:MySQL零基础学习Day4——多表查询pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &quo…

MetaGPT实战指南:构建模拟公司运营的多智能体系统 - 教程

MetaGPT实战指南:构建模拟公司运营的多智能体系统 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consola…

2017网站建设报价单营销论坛网站建设

引言 在计算机科学中,数据结构和算法是构建高效软件系统的基石。而排序算法作为算法领域的重要组成部分,一直在各种应用场景中发挥着关键作用。今天我们将聚焦于一种基于插入排序的改进版本——希尔排序(Shell Sort),深…

Timeplus Enterprise 3.0 (Linux, macOS) - 流处理平台

Timeplus Enterprise 3.0 (Linux, macOS) - 流处理平台Timeplus Enterprise 3.0 (Linux, macOS) - 流处理平台 Revolutionize Streaming Analytics 请访问原文链接:https://sysin.org/blog/timeplus/ 查看最新版。原创…

《HelloGitHub》第 114 期

兴趣是最好的老师,HelloGitHub 让你对开源感兴趣!简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。github.com/521xueweihan/HelloGitHub这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖…

网站建设与准备乐清城市网官网

这阵子在捣鼓一个将游戏视频打包成本地可播放文件的模块。开始使用avi作为容器,弄了半天无奈avi对aac的支持实在有限,在播放时音视频时无法完美同步。 关于这点avi文档中有提到: For AAC, one RAW AAC frame usually spans over 1024 samples…

重庆网站推广网络推广申请建设部门网站的报告

大数据产业是以数据及数据所蕴含的信息价值为核心生产要素,通过数据技术、数据产品、数据服务等形式,使数据与信息价值在各行业经济活动中得到充分释放的赋能型产业。 大数据产业定义一般分为核心业态、关联业态、衍生业态三大业态。 一、专…

智能微电网 —— 如何无缝集成分布式光伏 / 风电? - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

【鸿蒙生态共建】一文说清基础类型数据的非预期输入转换与兜底-《精通HarmonyOS NEXT :鸿蒙App开发入门与项目化实战》读者福利 - 详解

【鸿蒙生态共建】一文说清基础类型数据的非预期输入转换与兜底-《精通HarmonyOS NEXT :鸿蒙App开发入门与项目化实战》读者福利 - 详解2025-09-28 08:16 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: p…

一级a做爰片免费网站体验区网站制造

2014年杭州电子科技大学Java期末试卷.doc杭州电子科技大学学生考试卷( A )卷考试课程Java语言程序设计考试日期2014年 6月 16日成 绩课程号教师号任课教师姓名考生姓名学号(8位)年级专业注意:所有答案均写在答卷上,写在试卷上无效;(一)单选题(每题2分&am…

青岛商城网站建设劳务公司注册需要什么条件

CMA实验室认可,即中国计量认证(China Metrology Accreditation)的实验室资质认定,以下是对其的详细解读: 一、定义与目的 CMA认证是经省级以上人民政府计量行政部门对实验室的计量检定、测试能力和可靠性考核合格后进…

网站建设资质要求贝壳找房官网 二手房

文章目录 1 函数原型2 参数3 返回值4 使用说明5 示例5.1 示例1 1 函数原型 strcat():将src指向的字符串拼接在dest指向的字符串末尾,函数原型如下: char *strcat(char *dest, const char *src);2 参数 strcat()函数有两个参数src和dest&am…

网站建设需要条件查询网域名解析

共享数据缓冲区 概述共享数据缓冲区管理共享缓冲区管理的核心功能包括:共享数据缓冲区的组织结构初始化共享缓冲池BufferDesc 结构体InitBufferPool 函数如何确定请求的数据页面是否在缓冲区中?BufferTag 结构体RelFileNode 结构体ForkNumber 结构体ReadBuffer_common 函数怎…

Splunk Enterprise 10.0.1 (macOS, Linux, Windows) - 搜索、分析和可视化,数据全面洞察平台

Splunk Enterprise 10.0.1 (macOS, Linux, Windows) - 搜索、分析和可视化,数据全面洞察平台Splunk Enterprise 10.0.1 (macOS, Linux, Windows) - 搜索、分析和可视化,数据全面洞察平台 Search, analysis, and visu…