2024-09-30 06:13:37 发布
网友
我正在尝试创建一个函数 它的输入将是一个数字。 以及所需结果的长度
输出将是用户输入长度中的数字
例如,doMul(3,6)将输出:333333
现在我试着这样做:
def doMul(digit, count=1): if count == 0: return 1 return digit + digit * (10 ** doMul(digit, count - 1))
但它似乎不起作用。 我不知道为什么。 值得一提的是,我不想使用任何字符串
def doMul(n, m): "Return the decimal number that is nnn... m times." return n * ((10**m)-1) // 9
之所以这样做,是因为N的M个拷贝就是1的M个拷贝乘以N。由于(10**M)-1与doMul(9, m)相同,我们可以很容易地生成基数
doMul(9, m)
如果您绝对需要递归解决方案:
def doMul(n, m): if m <= 1: return n return n + 10 * doMul(n, m-1)
这基本上是一样的,计算出比我们想要的少一个数字,乘以10,然后加上我们想要的数字
y ** x实际上是y的x幂,而不是乘法。您应该删除它并返回digit,而不是1
y ** x
y
x
digit
1
def doMul(digit, count=1): if count == 1: return digit return digit + 10 * doMul(digit, count - 1)
这对你有用吗
def doMul(digit, count=1): if count == 1: return digit return str(digit) + str(doMul(digit, count-1)) print(doMul(3, 6))
之所以这样做,是因为N的M个拷贝就是1的M个拷贝乘以N。由于(10**M)-1与
doMul(9, m)
相同,我们可以很容易地生成基数如果您绝对需要递归解决方案:
这基本上是一样的,计算出比我们想要的少一个数字,乘以10,然后加上我们想要的数字
y ** x
实际上是y
的x
幂,而不是乘法。您应该删除它并返回digit
,而不是1
这对你有用吗
相关问题 更多 >
编程相关推荐