当前位置: 首页 > 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.yayakq.cn/news/689536/

相关文章:

  • 成都建设厅官方网站想做一个能上传视频的网站怎么做
  • asp.net网站开发模板门户网站建设整改报告
  • 景安怎么把网站做别名数字营销网站主页优化
  • 海外商城网站建设宿迁做网站的
  • 政务系统网站建设net淘宝网站开发的例子
  • 网站开发的相关网站公众号小程序怎么注销
  • 企业建站都有什么网站洛阳霞光做网站的公司
  • 校园网站开发需求aws的永久免费服务
  • 单位建设网站申请WordPress和微信同步
  • 个人建设网站需要什么证件吗陕西住建和城乡建设官网
  • 怎么免费发布网站电商网站建设那家好
  • 晋城市住房和城乡建设局官方网站网站关键词优化工具
  • 做美食直播哪个网站好东营区住房和城乡建设局网站
  • 做音乐网站需要版权么为何建设银行的网站登不上去
  • 即墨网站推广深圳做手机网站
  • 长沙网站建设网站哪个域名网站好
  • 南通seo网站诊断网站轮播效果怎么做的
  • 网站关键词排名做网站用win2008系统
  • 淄博网站制作多样定制简单的静态网站
  • 网站建设发朋友圈的图片网站建设 开发人一丶一一人一一
  • 网站设计与制作服务网站建设有哪些公司好
  • 吉林网站制作镇江建筑公司排名最新
  • 全flash网站源码wordpress 添加 博文
  • 网站icp是什么意思如何免费做公司网站
  • 石家庄建行网站合肥网站排名提升
  • 网站 域名 空间 服务器广告制作宣传
  • 云服务器网站崩溃的原因3d动画制作软件免费
  • 无锡企业网站排名网站建设方任务 职责
  • 手机网站开发兼容性网站如何推广方案策划
  • 网站建设属于技术开发吗asp网站打开速度慢