Nic*_*ick 2 python random numbers time-complexity
我有一个有趣的问题,我想生成一个大数字(~30000位数),但它必须是所有相同的数字,如 66666666666666.......
到目前为止,我已经做到了这一点:
def fillWithSixes(digits):
result = 0
for i in range(digits):
result *= 10
result += 6
return result
Run Code Online (Sandbox Code Playgroud)
然而,这是非常低效的,并且想知道是否有更好的方法?cpp或java中的答案也可以.
编辑:
让我们不只是解决,666666.....我希望它对任何数字都是通用的.如何7777777777....或44444........或55555...?
字符串操作更糟糕,从当前的复杂性O(n)增加到O(n^2).
您可以使用公式666...666 = 6/9*(10**n-1),其中n是数字位数.
所以,在Python中,你会把它写成
n = int(input())
a = 6 * (10**n - 1) // 9
print(a)
Run Code Online (Sandbox Code Playgroud)