永发信息网

int f(int n){ if(n==1)return 1; else return (n*f(n-1)); }这个函数有什么作用?时间复杂度是?

答案:2  悬赏:20  手机版
解决时间 2021-02-26 12:06
int f(int n){
if(n==1)return 1;
else return (n*f(n-1));
}这个函数,比如我输入的是100,最后得出的是个什么数?
时间复杂度是什么?
最佳答案
这个函数是用来求阶乘的,用了递归方法。输入100,就会得到100的阶乘。但是由于数值太大,会导致溢出。建议将返回值类型改为 double 型。
计算N的阶乘需要进行N次乘法运算,因此时间复杂度为O(N)。
全部回答
没什么本质错误 (1) 你的n 是引用,你这样做会改变n本身的值 建议你用 形参 f(int n) (2) 没有考虑溢出,n! 一般值都很大,你做好做一下判断,否者很容易溢出的 比如n多少 反回-1 表示 错误。 你也可以用long 行加大范围 需要比较复杂的计算, 一般公司面试题,考n! 一个是看你会不会用递归,一个是看你考虑溢出了没。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
地面辐射与地面吸收的大气逆辐射之差称为有效
声音从台式电脑的哪里进去,是不是要有输入设
志俊餐厅我想知道这个在什么地方
电吹风风罩怎么用
遇见老地方地址在什么地方,想过去办事
《还珠格格》中的紫薇是怎样失明的?说明了什
吉利新帝豪1.3t的发动机可以改汽吗
落跑甜心的演员些都是饰演的哪个角色?我只知
汇通金融利率多少
馕烤包子店这个地址在什么地方,我要处理点事
家人入了华莱黑插的传销怎么办
我16岁,身高1.75.好多同学比我高,我要长高
中国人寿嘉善县支公司客户服务中心我想知道这
我儿子三岁半,身高98cm,体重26斤正常吗
五菱宏光s车漆挂掉两手指长修着多少钱
推荐资讯
怎么让妈妈变年轻
黄瓜敷脸后要洗脸吗?
黄草坡怎么去啊,有知道地址的么
大毛坡地址在什么地方,想过去办事
你好,请问有那些学校承认首都科德学院的艺考
请问赶成都地铁3号线,到总府路什么站最近
湖南邵阳经济和张家界那个好
云联惠商城怎么去啊,有知道地址的么
女生什么字体好看
关于自我鼓励的作文!!~~
牛仔裤变白怎么恢复
成本费用率如何计算?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?