因数法

# 我们将一个字符串重复输出
def repeat(str,count):
    result = ""
    for i in range(count):
        result = result + str
    return result
print(repeat('@',5))

# 使用因数法来优化函数,因数法的逻辑来源于任何数字都可以拆分为二进制

def factorRepeat(str,count):
    result = ''
    while 1:
        # 将循环次数count用二进制拆分当不等于不等于0时就需要加上字符
        if count % 2 != 0:
            result += str
         # 当count等于0时拆分完毕结束循环
        if count == 0:
            break
         # 每次字符串都要翻倍
        str += str
        # count除2
        count = int(count / 2)

    return result

print(factorRepeat('@',5))
原文地址:https://www.cnblogs.com/tengx/p/11758152.html