求1!+(1!+3!)+(1!+3!+5!)+...+(1!+3!+5!+7!+9!)的值
|
今天朋友面试时遇到一道算法题,题目要求求出1!+(1!+3!)+(1!+3!+5!)+......+(1!+3!+5!+7!+9!)的值。我个人的思路是需要用到斐波那契和阶乘来解决这个问题。 这道题可以分为两步来做,先写出求阶乘的方法,然后我们根据括号就能把上面分组,其实每一组的最大数就是组数*2-1,比如第二组(1!+3!)中的3就是由2 * 2 - 1得来的,第五组(1!+3!+5!+7!+9!)的9就是根据 2 * 5 - 1得来的,并且每一组的结果就是上一组的结果再加上本身最大数的阶乘,所以这里用到了斐波那契。 下面是用PHP实现的代码: /**
* 求一个数n的阶乘
* @param int $n 要求阶乘的数n
* @return int n!
*/
function factorial($n) {
(编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
