def binary_sum(S, start, stop):
    """
    二路递归调用 计算序列元素之和
    二路递归: 一个函数执行两个递归调用
    时间复杂度 O(logn)
    :param S:
    :param start:
    :param stop:
    :return:
    """
    if start > stop:
        return 0
    elif start == stop-1:
        return S[start]
    else:
        mid = abs(stop-start) // 2 + start
        return binary_sum(S, start, mid) + binary_sum(S, mid, stop)