Nested-Loop-Python
count = 1
for i in range(10):
for j in range(0, i):
print(count, end='')
count = count +1
print()
input()
Bin ich ein Programm schreiben, das sollte die Ausgabe, die so aussieht.
1
22
333
4444
55555
666666
7777777
88888888
999999999
Mit dem code, den ich geschrieben habe, ich bin ziemlich nah, aber die Art und Weise meiner Zählung funktioniert es nur zählt bis und bis. Ich brauche nur Hilfe, es zählen nur die an 9, aber die Anzeige wie oben. Danke.
Ich kam hier, um sicherzustellen, dass ich war richtig Einrücken.
InformationsquelleAutor iMaxPrime | 2014-07-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du bist Inkrementieren
count
in die innere Schleife, die ist, warum Sie immer größere zahlen, bevor Sie wollenKönnen Sie einfach diesen.
oder, wenn Sie wollen, dass die nested-loop-für einige Grund
InformationsquelleAutor Dannnno
Dies funktioniert in beide python2-und Python ist3:
InformationsquelleAutor darkcharl
InformationsquelleAutor Raghav Chadha
Die einfachen Fehler in deinem code ist die Platzierung von count = count + 1. Er sollte sich nach der zweiten for-Schleife block. Ich habe eine einfache änderung in Ihrem eigenen code zu erhalten, die Ausgabe, die Sie wollen.
Wird diese Ausgabe, die Sie wollen, mit dem code, den Sie schrieb. 🙂
InformationsquelleAutor Vasanth Vijayabaskar
Dies ist eine line-Lösung.
Ein bisschen lange:
InformationsquelleAutor Coskun Soysal
Ändern
print(count, end='')
zuprint(i + 1, end='')
und entfernencount
. Nur stellen Sie sicher, dass Sie verstehen, warum es funktioniert.i
, nichtj
.Feste, wie Sie waren, zu kommentieren.
Das half @David, aber es beginnt, meine Zeilen aus-bei 2 statt einer, jetzt.
auch beginnen Sie, Ihre inneren Bereich bei 1, nicht 0.
for j in range(1, i):
Wieder, die wichtige Sache hier ist das debugging ein bisschen auf eigene Faust und denken, die Dinge durch, nicht einfach kopieren und einfügen den code von anderen.InformationsquelleAutor David Ehrmann
Ist das, was Sie wollen:
InformationsquelleAutor Zacrath
InformationsquelleAutor Harit Singh
InformationsquelleAutor Arvind T
Was Sie versuchen zu tun, beinhaltet ein mathematisches Konzept, das als repunit-zahlen
könnten Sie es auch tun, wie folgt:
InformationsquelleAutor Fredrick Kofi Tam
Merkte ich, dass das problem gelöst ist, aber hier ist, wie Sie wollten Ihr code Aussehen soll.
ich denke, @Dannnno Antwort ist kürzer und direkt auf den Punkt 🙂
InformationsquelleAutor Tejumade
Dies kann Ihre eine Zeile code zu problem
InformationsquelleAutor HamzaMushtaq
Andere haben vorgeschlagen, einige interessante Lösungen, aber dies kann auch durchgeführt werden, die mathematisch mit einer einfachen Beobachtung. Beachten Sie, dass:
1 - 1*1
22 - 2*11
333 - 3*111
4444 - 4*1111
und so weiter ....
Können wir eine Allgemeine Formel für die Herstellung von 1,11,111,1111,... bei jeder iteration. Beachten Sie, dass:
1 = 9/9 = (10 - 1)/9 = (10^1 - 1)/9
11 = 99/9 = (100 - 1)/9 = (10^2 - 1)/9
111 = 999/9 = (1000 - 1)/9 = (10^3 - 1)/9
......
ist, dass wir haben (10^i - 1)/9 für die I-TEN iteration.
Nun ist es einfach genug zu implementieren. Wir multiplizieren die ich mit der obigen Formel in jeder iteration. Daher die Allgemeine Formel ist:
i*(10^i - 1)/9
(für jede I-te iteration).
Hier ist der python-code:
Hoffe, das hilft.
InformationsquelleAutor noobcoder