flash网站片头动画黄冈网站建设报价

news/2025/9/22 23:32:15/文章来源:
flash网站片头动画,黄冈网站建设报价,建设一个网站的硬件要求,多平台网站设计实例目录 一、什么是递归 1.1.递归的思想 1.2.递归的限制条件 二、举例体会 2.1.求n的阶乘 2.2.顺序打印整数的每一位 2.3.斐波那契数列 三、递归与迭代 一、什么是递归 在学习C语言的过程中#xff0c;我们经常会跟递归打交道#xff0c;什么是递归呢#xff1f;它其实…目录 一、什么是递归 1.1.递归的思想 1.2.递归的限制条件 二、举例体会 2.1.求n的阶乘  2.2.顺序打印整数的每一位 2.3.斐波那契数列 三、递归与迭代 一、什么是递归 在学习C语言的过程中我们经常会跟递归打交道什么是递归呢它其实是一种解决问题的方法递归递归顾名思义递推和回归。在C语言中函数自己调用自己就是递归我们可以把它想成生活中的俄罗斯套娃。 下面请看最简单的递归代码 #include stdio.h int main() {printf(hehe\n);main();//main函数中⼜调⽤了main函数return 0; } 在上面的代码中我们看到了main函数里再次调用了main函数我们可以想象这个程序会一直调用下去直到内存不够导致栈溢出Stack overflow。 1.1.递归的思想 递归的思想用一个词来讲就是“大事化小”。 其中递代表递推归代表回归。 1.2.递归的限制条件 刚刚我们看到一直调用main函数的话会造成死递归因此我们在使用递归时需要注意一些必要条件。 1.递归存在限制条件当超过这个限制条件时递归就应该停止 2.每次递归应该越来越接近这个限制条件。  接下来我们举几个例子来让大家体会一下这两个必要条件。 二、举例体会 2.1.求n的阶乘  ⼀个正整数的阶乘factorial是所有⼩于及等于该数的正整数的积并且0的阶乘为1。   自然数n的阶乘写作 n! 。 经分析可知n! n * (n-1) * (n-2)... * 3 * 2 * 1,而n-1)! (n-1) * (n-2) *...* 3 * 2 * 1。 所以n! n * (n-1)!。 我们要求n的阶乘只需要求n和n-1的阶乘的乘积问题也就变成了求n-1的阶乘。经过一次递归我们就从n变到n-1那递归的次数足够了我们就可以到最后的1的阶乘。那怎么得到n的阶乘呢我们刚刚一步一步得到1的阶乘那我们再一步一步乘回去最终得到n的阶乘。 上述思路就是所谓的递归也就是把一个较大的问题转换为与原问题相似的小问题。 当n 0时n! 1。我们可以得到递推公式 代码如下 函数部分 int Fact(int n) {if(n0)return 1;elsereturn n*Fact(n-1); } 总体 #include stdio.h int Fact(int n) {if(n0)return 1;elsereturn n*Fact(n-1); } int main() {int n 0;scanf(%d, n);int ret Fact(n);printf(%d\n, ret);return 0; } 测试结果 2.2.顺序打印整数的每一位 输入一个整数n顺序打印其每一位。 input : 1234 output : 1 2 3 4 分析可知1234/10 123而1234%10 4。那我们可以巧妙的利用上述特性得到1234的每一位。但是出现一个问题我们获得的数字的顺序是倒着的这该怎么办呢。我们可以仔细品味一下递归递推和回归先递推再回归。 我们就可以先进行/10的操作再打印%10的余数如下 void Print(int n) {if(n9){Print(n/10);}printf(%d , n%10); } 画图推演一下 代码如下 #includestdio.h void Print(int n) {if (n 9){Print(n / 10);}printf(%d , n % 10); } int main() {int m 0;scanf(%d, m);Print(m);return 0; } 运行结果 2.3.斐波那契数列 斐波那契数列Fibonacci sequence又称黄金分割数列因数学家莱昂纳多·斐波那契Leonardo Fibonacci以兔子繁殖为例子而引入故又称“兔子数列”其数值为1、1、2、3、5、8、13、21、34……  其递推公式为 用递推写出代码很简单 #includestdio.hint Fib(int n) {if (n 1 || n 2)return 1;else return Fib(n - 1) Fib(n - 2); }int main() {int n 0;scanf(%d, n);printf(%d, Fib(n));return 0; } 运行结果 那如果让你不用递归的方法你会怎么做呢  我们可以创建三个变量就像两个数互相交换那样将a赋值1b赋值1c为a与b的和。 n大于二之后才开始循环所以我们可以这么写 int Fib(int n) {int a 1, b 1,c 0;while (n2){c a b;a b;b c;n--;}return b; } 一个接着一个交换值直到n等于2退出循环此时c的值赋给了b,而我们在n小于等于2的时候求不出来c而b的值正好是1所以我们返回b的值。 三、递归与迭代 上面我们说了什么是递归这又来个迭代什么叫迭代呢说白了通常就是循环。 比如刚才计算阶乘我就不想用递归那我就循环n次也可以解决问题并且该方法效率比递归高。 我们遇到的许多问题用递归解释的原因是因为它比非递归好想好解释但这些问题往往迭代比递归的效率更高。 我们说当一个问题非常复杂难以用迭代的方式来解决时2这时候递归实现的简洁性便可以补偿运行时的开销。 就像刚刚的例三求斐波那契数列使用迭代的方法就更加有效率。 如图所示递归层次越深冗余计算越多我们可以简单测试一下 #include stdio.h int count 0; int Fib(int n) {if(n 3)count;//统计第3个斐波那契数被计算的次数if(n2)return 1;elsereturn Fib(n-1)Fib(n-2); } int main() {int n 0;scanf(%d, n);int ret Fib(n);printf(%d\n, ret); printf(\ncount %d\n, count);return 0; } 来看结果 这才是40,可想而知50会是多大的天文数字。 而迭代的方式我们只需要前后一步一步相加即可。 最后总结一下递归是一个很好的解决问题方式在编程学习中我们会经常用到它但是它也不是万能的还是需要我们多动脑思考。 我相信我们总会找到解决办法的。

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

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

相关文章

哪里有专业做网站的网站怎么做宣传

大写数字网今天精心准备的是《123456789a》,下面是详解!html里,怎么把<a>123456789</a>弄到中间来例如把a标签的字移到中间来<a123456789><&#…

鲁斌 42450745 网站建设你需要网站建设

文章目录 场景分析方法的幂等分布式锁Redis实现分布式锁抢锁的设计思路 分布式锁案例 直击面试rocketmq什么时候重复消费消息丢失的问题消息在哪里丢失发送端确保发送成功并且配合失败的业务处理消费端确保消息不丢失rocketmq 主从同步刷盘 场景分析 分布式系统架构中,队列是分…

郑州手机网站制作公司网站开发校园经历范文

第一章 成为一个很厉害的人(持续输入,反复练习) 为什么要学习及如何学习 1、自毁趋势(熵增),故需要能量输入(负熵流) //引申:水往低处流是趋势,学习是逆趋势。 2、持续输入能量(物质和信息),…

专业简历制作网站模板怎么做网站怎么引入广告挣钱

1.项目说明 背景: 着网络技术的不断发展,人们的消费观念在不断变化,消费手段也变得错综复杂。很多人都在困扰,钱到底花在了那里。 目的: 为了解决很多人的钱花在哪了的困扰,我们组决定制作一个消费账单…

多商家在线客服系统 - 客服用户表设计方案

gofly.v1kf.com vx: llike620 ​ 设计分析与建议 针对多商家在线客服系统的客服用户表设计,我分析了您提供的原始设计并提出以下优化建议: 优化要点​​安全增强​​:密码存储改用更安全的bcrypt算法(增加salt字段…

九月22号

今天在课上完成了测试代码的分解 研究了一下原码,补码和反码。原码符号位 + 真值。最高位(最左边的一位)表示符号,0 代表正数,1 代表负数。其余位表示这个数的绝对值。而正数的反码与其原码相同。负数的反码是:其…

购物网站开发教程中文版网络公司可以做哪些业务

Color Image Histograms and equalization with OpenCV - FreedomVC

唐山哪个公司可以制作网站frontpage可以做网站吗

cmd窗口运行jar程序时,在cmd窗口点击了一下,如果你选中了(页面会有个白色的选中内容),java程序就会暂停,这是只有按一下鼠标右键或着CtrlC才能取消选中,程序才会继续运行,如果java程…

罗田企业网站建设wordpress个人博客实战

在Unity中,使用键盘ADWS键控制物体移动,通过鼠标左键控制物体旋转,鼠标中键控制物体缩放是再常见不过的方法。 方法如下: using System.Collections; using System.Collections.Generic; using UnityEngine;public class MoveCo…

海口商城网站建设投资公司注册需要多少钱

文章目录 YUM 升级 PHP71. 查看当前 PHP 信息2. YUM 安装 PHP73. 查看 PHP 版本4. 启动PHP-FPM YUM 升级 PHP7 参考地址:网站地址 参考地址:网站地址 1. 查看当前 PHP 信息 # 查看 PHP 版本信息 php -v# 查看 yum 源中 PHP 信息 yum list | grep php2. …

hao123网站源码制作2015最新仿网站服务器建设

前言 我们之前阐述的内容都是在文件打开的前提下, 但是事实上不是所有文件都是被打开的, 且大部分文件都不是被打开的(也就是文件当前并不需要被访问), 都在磁盘中进行保存. 那这些没有被(进程)打开的文件, 也是需要被管理的! 对于这部分文件核心工作之一是能够快速定位文件…

烟台做网站建设电话建筑工程网络软件

随着全球贸易的不断发展,我国与印度之间的贸易往来也日益频繁。作为两个人口最多的国家之一,中国和印度之间的货物运输需求不断增长。为了满足这一需求,印度货代专线应运而生,为进出口商提供高效、可靠的货物运输服务。本文将探索…

字体模板素材免费下载网站seo优化系统哪个好

文章目录 Arrow, 一个六边形的 Python 时间库第一部分:背景介绍第二部分:库是什么?第三部分:如何安装这个库?第四部分:库函数使用方法第五部分:场景应用第六部分:常见Bug及解决方案第…

网站设计师待遇怎样在凡科网站做网页

// 执行 // 使用你自己的服务器IP与登录账户 export USER_AT_HOST"服务器账户名服务器IP" // PUBKEYPATH是你公钥的路径 export PUBKEYPATH"$HOME/.ssh/id_rsa.pub"ssh-copy-id -i "$PUBKEYPATH" "$USER_AT_HOST"

江苏做网站怎么收费阿里云怎么购买域名

更多干货推荐可以去牛客网看看,他们现在的IT题库内容很丰富,属于国内做的很好的了,而且是课程刷题面经求职讨论区分享,一站式求职学习网站,最最最重要的里面的资源全部免费!!!点击进…

网站开发需求文档怎么写赣州市开发小程序

来源 | 编程技术宇宙责编 | 晋兆雨头图 | 付费下载于视觉中国背景曾经,我面试的时候有两个最怕的。一怕问算法,二怕问高并发。算法这个,自从刷了不少LeetCode,发现还是有套路可循的,虽不敢说算法能力有多强&#xff0c…

深圳品牌建网站网络网站建设公司排名

上篇博文介绍了如何在LINQPad中输出StreamInsight查询结果。这篇文章将主要介绍StreamInsight基础查询操作中的过滤部分。 测试数据准备 为了方便测试查询,我们首先准备一个静态的测试数据源:var weatherData new[] {new { Timestamp new DateTime(201…

网站seo策划方案案例分析个人手机app免费制作

一、继承(Inheritance) 1. 概述 继承是面向对象编程的一种特性,允许我们定义一个类(称为子类或派生类)以继承另一个类(称为超类或基类)的功能。 2. 语法格式 public class Zi extends Fu {/…

网站开发方法简答题大型旅游网站源码 织梦

中国上海,2021年12月21日——今日,由工业和信息化部国际经济技术合作中心(工信部国合中心)与施耐德电气主办的“绿色智能制造创赢计划”第二季总决赛在上海举办。经过半年多的加速营培训、场景探访与联合方案开发,最终…

python做电商网站南通网站公司网站

“我在使用Excel表格工作时,需要插入一些行来填写数据。但是我不知道应该如何操作,有没有朋友可以支支招呀?” Excel是办公室工作中不可或缺的工具,它强大的数据处理能力使得工作变得高效。因此很多用户在使用电脑时或许都会用到E…