可能有一個演算法,但我不確定它是什么。
對于整數 X,求和為 X 的整數的最少數量是多少,并且求和的整數小于或等于 Y 并且可以在總和中重復。
例如:
X=95
Y=1
This is 1 (95 times)
X=39
Y=5
This is 5 (7 times) and 4 (1 time)
X=53
Y=11
This is 11 (4 times), 9 (1 time)
我看到這是一種遞回地劃分值,同時減少分母直到達到零,但可能有一種更優雅的方法。
更新:
兩件事情:
- 我沒有意識到為此需要的除法級別不會超過 1 級。我假設可能存在分子/分母的組合,其中在第二次除法發生后會有余數,但至少在我的用例中,沒有。
- 不,沒有任何特定于 Python 的內容,這正是我使用的。
uj5u.com熱心網友回復:
您可以使用divmod()獲得商和余數:
X = 95
Y = 1
quotient, remainder = divmod(X, Y)
if r == 0:
print(f"This is {Y} ({quotient} times)")
else:
print(f"This is {Y} ({quotient} times) and {remainder} (1 time)")
這列印:
This is 1 (95 times)
uj5u.com熱心網友回復:
X=int(input("What is X"))
Y=int(input("What is Y"))
divisor = X // Y # integer divide
remainder = X % Y
if remainder:
print(f"This is {Y} ({divisor} times), {remainder}")
else:
print(f"This is {Y} ({divisor} times)")
uj5u.com熱心網友回復:
您要問的是將一個數字除以另一個數字,然后提供余數。
使用//運算子將??兩個數字相除,然后向下舍入到最接近的整數。 %運算子將在兩個數字相除時提供余數。
def div(x, y):
return x//y, x%y
x = 95
y = 15
count, remainder = div(x, y)
text = 'This is {} ({} times)'.format(x, count)
if remainder > 0:
text = ' and {} ({} times)'.format(remainder, 1)
print(text)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/455646.html
