不关注《一碳科技》?那么你会错过很多干货哦!

前言

各位粉丝,实在是不好意思啦,从上一篇文章的发布距今已经有一个多星期了,不是不想发,而是实在太忙了,一直忙着跟舍友开发购物网站,一人担起技术的“重担”。虽然隔了好几天没有发布新的文章,但是陆陆续续还是有一些粉丝私信拿源码的,所以小编今天就抽空给大带来一篇简单的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前端开发的小干货哦,对这方面有兴趣的可以关注《一碳科技》,即使掌握最新咨询!

查看原文 >>
相关文章