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

慈溪市建设厅网站百度关键词刷排名教程

慈溪市建设厅网站,百度关键词刷排名教程,南京模板网站开发,网站扫二维码怎么做今天,我们开发的AI笔试题工具,ai扁食——AI程序员笔试系统给我出了中级Golang题目,就是这道题:《请编写一个函数,接收一个整数参数n,输出n的阶乘结果》,希望我写一个函数,输出n的阶乘…

今天,我们开发的AI笔试题工具,ai扁食——AI程序员笔试系统给我出了中级Golang题目,就是这道题:《请编写一个函数,接收一个整数参数n,输出n的阶乘结果》,希望我写一个函数,输出n的阶乘结果。我开始的时候没觉得有什么问题,大概写了个实现如下:

// 循环计算n的阶乘
func factorial(n int) int {var result = 1for i := 1; i <= n; i++ {result *= i}return result
}

或者使用递归也行:

// 计算n的阶乘
func factorial1(n int) int {if n == 1 {return 1}return n * factorial1(n-1)
}

后来觉得不对,这看起来不像一个中级题目啊。

跑了个简单测试例,发现这两个实现居然在21的时候就溢出int了。

21的阶乘是-4249290049419214848
21的阶乘是-4249290049419214848

哦,果然隐藏了一个考点。

那golang其实给我们提供了一个大数库:

math.Big

Big库的循环实现版本如下:

// 计算n的阶乘,使用math/big包
func factorial3(n int) *big.Int {var result = big.NewInt(1)for i := 1; i <= n; i++ {result.Mul(result, big.NewInt(int64(i)))}return result
}

或者递归版本

// 计算n的阶乘,使用math/big包,递归实现
func factorial8(n int) *big.Int {if n == 1 {return big.NewInt(1)}var result = big.NewInt(int64(n))return result.Mul(result, factorial8(n-1))
}

最终选择提交了循环版本,递归版本在递归深度较深的时候有非必要的消耗,循环就好。

http://www.ds6.com.cn/news/81145.html

相关文章:

  • app企业网站模板莆田百度快照优化
  • 推荐做那个的电影网站2022年最新新闻播报稿件
  • 陕西网站建设宣传方案整站seo优化哪家好
  • 长春美容网站建设免费网站seo排名优化
  • 慈云寺网站建设seo关键词排名怎么提升
  • 电影网站盗链怎么做咸宁网站seo
  • 做贷款网站百度关键词搜索查询
  • 开发公司个人工作总结衡阳seo优化首选
  • 如何组织公司做网站设计网站大全
  • 门户网站整改情况报告推广引流工具
  • 网站开发工资高么精准推广
  • 网站开发摊销年限涟源网站seo
  • 小红书关键词排名怎么做班级优化大师免费下载学生版
  • 陕西网站开发最新足球赛事
  • 网站策划模板福州seo技巧培训
  • 富阳网站建设找哪家网页制作app
  • 动态网站开发实例教程8大营销工具
  • 医疗网站的在线聊天怎么做的鄂尔多斯seo
  • 大型网站seo企业网站建设需求分析
  • wordpress streamango上海最大的seo公司
  • 武汉注册公司流程win10优化大师好用吗
  • 优化大师电脑版官网新网站排名优化怎么做
  • 代做论文毕业设计网站靠谱不如何提升百度关键词排名
  • 做商城网站的公司下载百度语音导航地图
  • 网站建设的开发方式和费用注册网站平台要多少钱
  • 涿州城乡建设委员会的网站长沙官网seo技术
  • 专门做优惠券的网站好的推广平台
  • 南京响应式网站制作建立网站的主要步骤
  • 优化政府门户网站建设百度关键词搜索怎么收费
  • 查看网站是用什么做的北京seo优化wyhseo