Ich versuche, einen Code zu schreiben, der die Gesamtüberträge eines langen Divisionsproblems zählt. Dies ist die Funktion, die ich für die Übertragungen geschrieben habe. Ich glaube das Problem ist, dass die erste while-Schleife nicht den ganzen Weg funktioniert. Wenn ja, warum? Dies ist in Python 3.5.Warum läuft mein Programm nicht durch die erste While-Schleife?
carries = 0
sum1 = 0
countx = str(x)
county = str(y)
countx1 = len(countx)
county1 = len(county)
countx2 = int(countx1)
county2 = int(county1)
carry_over = 0
count = countx1
index = 1
index1 = 1
carrieslist = [0,0,0,0,0,0,0,0,0,0]
while (index1 <= county1):
sum3 = county[-index1]
while (index <= count):
sum2 = countx[0-index]
sum4 = int(sum2)
sum5 = int(sum3)
sum1 = sum4*sum5+carry_over
sum6 = str(sum1)
index = index+1
if (sum1 > 9):
carries += 1
carry_over = int(sum6[0])
if carry_over > 0:
if carry_over == 1:
carrieslist[1] += 1
if carry_over == 2:
carrieslist[2] += 1
if carry_over == 3:
carrieslist[3] += 1
if carry_over == 4:
carrieslist[4] += 1
if carry_over == 5:
carrieslist[5] += 1
if carry_over == 6:
carrieslist[6] += 1
if carry_over == 7:
carrieslist[7] += 1
if carry_over == 8:
carrieslist[8] += 1
if carry_over == 9:
carrieslist[9] += 1
else:
carry_over = 0
index1 = index1 + 1
print(" ")
print("Carries:",carries)
print(" ")
if sum(carrieslist) > 0:
print("Carry digit --> Frequency")
countlist = 0
indexlist = 0
while (countlist < len(carrieslist)):
if (carrieslist[indexlist] > 0):
print(indexlist,"-->",carrieslist[indexlist])
indexlist += 1
countlist += 1
else:
indexlist += 1
countlist += 1
Versuchen Sie auf einen negativen Index in der Zeile, Grafschaft [-index1] zuzugreifen? Was ist das eigentliche Problem, vor dem Sie hier stehen? Übrigens, was ist x und y? Was willst du eigentlich machen? –
x und y sind die zwei Zahlen, die ich mit langer Multiplikation multipliziere, also zum Beispiel 9929 und 129. Und ich bin nur neugierig, warum es die Übertragungen für die 9 x 9929 zählt, aber nicht weiter mit den Übertragungen für die 2 und die 1 in 129. Hoffentlich macht das Sinn Ich kann immer die Eingabeaufforderung bei Bedarf posten –
Sorry, aber deine Erklärung ist mir nicht klar. Kannst du erklären, was du mit "zählt die gesamten Übertragungen eines langen Teilungsproblems" in deinem Beitrag gemeint hast? –