我有一个有趣的问题,我想生成一个大数字(~30000 位数字),但它必须是所有相同的数字,比如 66666666666666......
到目前为止,我是通过以下方式完成的:
def fillWithSixes(digits):
result = 0
for i in range(digits):
result *= 10
result += 6
return result
但是这样效率很低,请问有没有更好的办法?用 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)
关于python - 给定位数时生成 66666 等数字的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33744078/