不关注《一碳科技》?那么你会错过很多干货哦!
前言
各位粉丝,实在是不好意思啦,从上一篇文章的发布距今已经有一个多星期了,不是不想发,而是实在太忙了,一直忙着跟舍友开发购物网站,一人担起技术的“重担”。虽然隔了好几天没有发布新的文章,但是陆陆续续还是有一些粉丝私信拿源码的,所以小编今天就抽空给大带来一篇简单的C教程文章——求数N的阶乘。
这个比较简单,各位就当做娱乐板块来看啦
首先,我们来捋一捋,求数N的阶乘,无非就是N(N-1)(N-2)(N-3)...1,从这里我们可以发现一个规律,后面的一个数总比前面一个数少1,并且最后一个数字为1,他们跟公差为1的等差数列有点相似,所以我们很快就能想到用递归来解决这个问题。
但是我们如何利用递归呢?我可以从上面这个问题得知,递归函数的边界条件为:当N变成1时,所以我们可以结合以上两点得出递归函数的大概模型。
自身调用自身
利用递归函数自身调用自身的这一特点,我们可以设计一个函数,这个函数是我们所要求阶乘的数N,并且它的返回值为当前N的值乘上(N-1)的阶乘的值,当N减少到1是,处罚边界条件开始返回,当它返回到第一级函数时,我们用printf()函数来输出N的阶乘!N。
简单的算法
小编的这个求阶乘的函数很简单,仅仅由三行代码组成,所以基础不好的小伙伴也不用过于担心。
首先在函数里面写一个IF判断,判断是否达到边界条件,如果没有达到则进入下一步。这个函数接受一个int类型的参数,也就是我们要求阶乘的数N,以下是该函数的代码。
结果测试
通过调试,我们可以看到正确的结果,例如这里小编算的是10的阶乘,而程序输出的答案很明显:3628800,通过查询这个结果是对的,小伙伴也可以亲自算一下哦。
新的干货
小编最近可能发布一些web前端开发的小干货哦,对这方面有兴趣的可以关注《一碳科技》,即使掌握最新咨询!
嘿~摘下月亮给你,摘下太阳给你,你想要的我都给你,各位看官大人,看到这儿了麻烦给小编个大大的赞呗!! \(^o^)/关注点个赞,是对小编最大的鼓励!!嗯~,360度各种姿势来求赞求关注!! \(^o^)/动一动您发财滴小手指头,举手之劳└(^o^)┘劳驾各位看官们!! 大家如果有什么各自的看法和观点欢迎各位看官们在文章的下方留言和评论、关注点赞以及转发和探讨哈!!!祝各位看官们生意发发发,学业事业成成成,身体康康康!!! 注:文章内容图片来源于网络, 如有雷同纯属巧合,如有侵权请联系删除,谢谢大家的支持鼓励!!小编在这里感谢各位看官们了! \(^o^)/
领取专属 10元无门槛券
私享最新 技术干货