有没有一种简单的方法可以根据输入的 Len 计算 Python 中的公式
Is there an easy way to calculate a formula in Python conditional on the Len of input
我完全不知道如何做到这一点,所以任何 suggestions/hints 将不胜感激。
((6778 // (6*7*8*9)) * 1000) +
(((6778 % (6*7*8*9)) // (7*8*9)) * 100) +
(((6778 % (6*7*8*9) % (7*8*9)) // (8*9)) *10)+
(6778 % (6*7*8*9) % (7*8*9) % (8*9) // 9)
输出=21311
必须适用于多个整数,而不仅仅是 6778
我试过 for 循环,但证明很难
您好,您需要使用一个递归函数,该函数会在满足特定条件之前调用自身。我不得不说你的例子不是很清楚所以我只试图解决你所有块的分子的循环部分。我将 post 这里的代码供您参考,但我不确定它是否能达到您想要的效果,如果您能给我们更多指导,我们将能够进一步帮助您
x = 6778
def split_val(x):
return [float(i) for i in str(x)]
def perc_calculation(x, i, val):
if i > 0:
list_num = split_val(x)
prod_val = np.prod([list_num[0] + num for num in range(len(list_num))][(i-1):])
val = val % prod_val
return perc_calculation(x, i-1, val)
else:
return val
out_val = 0
for i in range(len(str(x))):
list_num = split_val(x)
prod_val = np.prod([list_num[0] + num for num in range(len(list_num))][(i):])
numerator = perc_calculation(x,i,x)
print(numerator)
这是结果:
6778
730.0
226.0
10.0
您可能会注意到 perc_calculation 函数是一个递归函数,因为它会调用自身
我完全不知道如何做到这一点,所以任何 suggestions/hints 将不胜感激。
((6778 // (6*7*8*9)) * 1000) +
(((6778 % (6*7*8*9)) // (7*8*9)) * 100) +
(((6778 % (6*7*8*9) % (7*8*9)) // (8*9)) *10)+
(6778 % (6*7*8*9) % (7*8*9) % (8*9) // 9)
输出=21311
必须适用于多个整数,而不仅仅是 6778
我试过 for 循环,但证明很难
您好,您需要使用一个递归函数,该函数会在满足特定条件之前调用自身。我不得不说你的例子不是很清楚所以我只试图解决你所有块的分子的循环部分。我将 post 这里的代码供您参考,但我不确定它是否能达到您想要的效果,如果您能给我们更多指导,我们将能够进一步帮助您
x = 6778
def split_val(x):
return [float(i) for i in str(x)]
def perc_calculation(x, i, val):
if i > 0:
list_num = split_val(x)
prod_val = np.prod([list_num[0] + num for num in range(len(list_num))][(i-1):])
val = val % prod_val
return perc_calculation(x, i-1, val)
else:
return val
out_val = 0
for i in range(len(str(x))):
list_num = split_val(x)
prod_val = np.prod([list_num[0] + num for num in range(len(list_num))][(i):])
numerator = perc_calculation(x,i,x)
print(numerator)
这是结果: 6778 730.0 226.0 10.0
您可能会注意到 perc_calculation 函数是一个递归函数,因为它会调用自身