Ich versuche, einen Algorithmus zu erstellen, der wie folgt, der wie folgt ist, wie Bitte klicken Sie hier, um die Anforderung anzuzeigen .
Wenn ich jedoch x = 3 y = 5 d = 24 eingreife, funktioniert es Fein- und Ausgangsarbeiten, da es TX = 3 TY = 3 RD = 0 sein sollte
Wenn jedoch x = 3 y = 9 d = 29 eingreift, druckt es nicht korrekte Werte, warum und wie Sie es beheben können?
Code:
x=int(input("Please Enter x Value: "))
y=int(input("Please Enter y Value: "))
D=int(input("Please Enter D Value: "))
leftovers = None
current_solution = []
current_best = None
max_ys = int(D/y)
for i in range(1,max_ys+1):
first_leftovers = D % (i * y)
num_xs = int(first_leftovers/x)
second_leftovers = first_leftovers % x
if current_best is None:
current_best = second_leftovers
current_solution = [i,num_xs,second_leftovers]
elif second_leftovers < current_best:
current_best = second_leftovers
current_solution = [i,num_xs,second_leftovers]
tx = current_solution[0]
ty = current_solution[1]
remaining = current_solution[2]
print("TX: %s, TY: %s, Remaining distance: %s" % (tx, ty, remaining))
1 Antwort
Hier ist eine Lösung für die Aufgabe in der Verbindung, die Sie gepostet haben. Es kann sicherlich optimiert werden.
x=int(input("Please Enter x Value: "))
y=int(input("Please Enter y Value: "))
D=int(input("Please Enter D Value: "))
r_best=float("inf")
t_best=float("inf")
best_tx=None
best_ty=None
for tx in range(D//x+1):
for ty in range(D//y+1):
r=D-x*tx-y*ty
t=tx+ty
if r>=0 and (r<r_best or r==r_best and t<t_best):
r_best=r
t_best=t
best_tx=tx
best_ty=ty
print("TX: %s, TY: %s, Remaining distance: %s" % (best_tx, best_ty, r_best))
Verwandte Fragen
Neue Fragen
python
Python ist eine dynamisch typisierte Mehrzweck-Programmiersprache mit mehreren Paradigmen. Es wurde entwickelt, um schnell zu lernen, zu verstehen, zu verwenden und eine saubere und einheitliche Syntax durchzusetzen. Bitte beachten Sie, dass Python 2 ab dem 01.01.2020 offiziell nicht mehr unterstützt wird. Fügen Sie für versionenspezifische Python-Fragen das Tag [python-2.7] oder [python-3.x] hinzu. Wenn Sie eine Python-Variante (z. B. Jython, PyPy) oder eine Bibliothek (z. B. Pandas und NumPy) verwenden, fügen Sie diese bitte in die Tags ein.