经常被问到累加器?还在用循环解决?

#!/usr/bin/env python
# -*- coding: utf-8 -*-

###
 # @function fn_sigma(∑)
 # @brief 等差数列求和公式
 # @see http://baike.baidu.com/link?url=m9jRLvZLJdl9_41rx0_0VMzshMRLjiH0B-SANBATlvoaJYLYRUJMLS-paa5lg73iiT999RgV0D72IeEULUSMkK
 # @param begin 第一个数
 # @param end 最后一个数
 # @param count 数列个数
 # @param step 公差
##
def fn_sigma(begin, end, count, step):
# 求和公式1,适合步进为1的数列
# return (begin + end) * count / 2
# 求和公式2
# return count * begin + count * (count - 1) / 2 * step
# 求和公式3
    return (2 * begin + (count - 1) * step) * count / 2
# 求和公式4
# return (step / 2.) * pow(count, 2) + (begin - step / 2.) * count

你可能感兴趣的:(经常被问到累加器?还在用循环解决?)