当前位置: 首页 > news >正文

京东联盟怎么做网站农家乐网站 建设

京东联盟怎么做网站,农家乐网站 建设,百度一下百度官方网,wordpress爱找主题递归是一种用于解决计算机问题的技术,方法是创建一个调用自身的函数,直到程序达到预期的结果。 递归函数示例 举个简单的例子: 假设有个记录数字1-5的函数,如下所示: function log(num){if(num > 5){return;}co…

递归是一种用于解决计算机问题的技术,方法是创建一个调用自身的函数,直到程序达到预期的结果。

递归函数示例

举个简单的例子:

假设有个记录数字1-5的函数,如下所示:

function log(num){if(num > 5){return;}console.log(num);log(num + 1);
}log(1); 

当运行上面的代码时,log只要num变量的值小于5,函数就会简单地调用自身,直到等于5后跳出。

递归函数必须至少有一个条件,它会停止调用自己,否则函数将无限期地调用自己,直到 JavaScript 抛出错误。

可能你会想,为什么不直接使用for循环执行呢,也可以达到一样的效果。

for(let i = 1; i <= 5; i++){console.log(i);
} 

for循环要求知道重复执行代码的次数。但是可以使用递归函数和while循环来执行一段代码,而无需知道需要重复多少次。只需要知道停止执行的条件即可。

例如,假设有如下问题:

  • 随机选择一个介于 1 到 10 之间的数字,直到得到数字 5。
  • 记录在 random 方法返回 5 之前需要执行多少次代码。

以下是使用递归函数的方法:

function randomUntilFive(result = 0, count = 0){if(result === 5){console.log(`随机结果: ${result}`);console.log(`随机执行次数: ${count}`);return;}result = Math.floor(Math.random() * (10 - 1 + 1) + 1);count++;randomUntilFive(result, count);
}randomUntilFive(); 

不能用for循环替换上面的代码,但可以用while循环替换它:

let result = 0;
let count = 0;while (result !== 5) {result = Math.floor(Math.random() * (10 - 1 + 1) + 1);count++;
}console.log(`随机结果: ${result}`);
console.log(`随机执行次数: ${count}`); 

如何读取递归函数

乍一看,递归函数并不直观或易于理解。以下步骤将帮助您更快地阅读和理解递归函数:

  • 始终先确定函数的基本情况。
  • 将参数传递给将立即到达基本情况的函数。
  • 确定至少将执行递归函数调用一次的参数。

使用上面的示例尝试读下面的代码randomUntilFive()。

function randomUntilFive(result = 0, count = 0){if(result === 5){// 触发结束}// 递归调用函数
}randomUntilFive(); 

这意味着可以通过将数字传递给5参数来达到结束。

function randomUntilFive(result = 0, count = 0){if(result === 5){console.log(`随机结果: ${result}`);console.log(`随机执行次数: ${count}`);return;}
}randomUntilFive(5); 

虽然count参数不应该为零,但将数字5作为参数传递给上面的函数调用可以满足第二步的要求。

最后,需要找到一个至少执行一次递归函数调用的参数。在上述情况下,可以传递任何数字,而不是传递任何数字5:

function randomUntilFive(result = 0, count = 0){if(result === 5){console.log(`随机结果: ${result}`);console.log(`随机执行次数: ${count}`);return;}result = Math.floor(Math.random() * (10 - 1 + 1) + 1);count++;randomUntilFive(result, count);
}randomUntilFive(4); 
// 5以外的任何数字
// 执行递归调用 

如何编写递归函数

编写递归函数与阅读递归函数几乎相同:

  • 使用通过其参数达到的结束条件创建一个常规函数。
  • 将参数传递给立即触发结束条件的函数。
  • 只传递一次触发递归调用的下一个参数。

假设编写一个计算阶乘的函数。下面是五的阶乘:

5_4_3_2_1 = 120

首先,这个函数的结束条件是 1,创建一个factorial返回 1 的函数:

function factorial(num){if(num === 1){return num;}}console.log(factorial(1)); 

现在进入第三步。需要在函数中得到一个递归调用,并且至少调用一次。由于阶乘计算在每次乘法时将数字减一,因此可以通过传递num-1给递归调用来模拟它:

function factorial(num){if(num === 1){return num;}return num * factorial(num-1) 
}console.log(factorial(2)); 

递归函数完成,调用试试

console.log(factorial(5)); 
http://www.yayakq.cn/news/241854/

相关文章:

  • 网站开发人员岗位分布说明广东人社厅网上服务平台
  • 做网站工作内容如何自己做推广
  • 江苏省两学一做网站本地的丹阳网站建设
  • 企业网站建设主要类型及选择网络推广文案前景
  • 东莞网站建设有什么网络公司网站建设公司信科网络
  • 初学者毕业设计做网站学院网站建设流程
  • 网站宣传海报一个服务器可以做两个网站吗
  • 清远市住房和城乡建设局门户网站建设局特种作业网站
  • 做打鱼网站需要多少钱表白时刻网站
  • 迅捷流程图在线制作网站门户网站域名是什么
  • 如可建设淘宝链接网站前端seo优化方案
  • 同城推广引流平台优化大师免费版下载
  • 网站开发组合 所有组合广州优壹网络科技有限公司
  • 儿童做的小游戏下载网站网站首页图片制作
  • 山西做网站贵吗哪里有网站推广优化
  • 吉林分销网站建设济南黄河路桥建设集团官方网站
  • 微信 免费 网站100种增加网站流量的方法
  • wordpress站长统计代码重庆网上房地产网签合同查询
  • 登录建设银行网站打不开小程序代理开发费用
  • 网站内容保护凡科电脑版
  • 技术网站建设帝国cms网站地图生成器
  • 注册网站免费注册网络营销课程个人总结范文
  • 网站空间多少钱网站建设优化的书籍
  • 微商城网站建设案例做百度移动网站吗
  • 张戈博客 wordpress同步新浪微博安徽360优化
  • 韩国网站设计欣赏石家庄建设厅网站
  • 网站dede后台川畅联系 做网站多少钱
  • 网站能找到做网站的人适合ps新手兼职
  • 中国建设银行网站的主要功能专做袜子的网站
  • 河南网站建设公司排名软件技术外包是什么行业