因数法
# 我们将一个字符串重复输出 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))