Ich habe Paizas Level-Up-Problem-Sammlung gelöst, aber ich hatte keine vorbildliche Antwort, also habe ich es selbst mit Erklärungen gemacht. Die Sprache ist Python3.
Paizas Skill-Check-Beispielproblem Fizz Buzz (entspricht Paiza-Rang C) https://paiza.jp/works/mondai/skillcheck_sample/fizz-buzz?language_uid=python3 Sie können paiza sofort kostenlos registrieren, daher empfehle ich Ihnen, sich vorerst zu registrieren.
Programmieren wir das folgende Problem!
Die ganze Zahl N wird als Eingabe angegeben.
Zeigen Sie die Ganzzahlen von 1 bis N in der Reihenfolge von 1 an.
Die Nummer, die Sie anzeigen möchten, lautet jedoch
・ Wenn es ein Vielfaches von 3 und ein Vielfaches von 5 ist, "Fizz Buzz" ・ Wenn es ein Vielfaches von 3 ist, "Fizz" ・ Wenn es ein Vielfaches von 5 ist, "Buzz"
Bitte zeigen Sie >> anstelle der Nummer an.
einzugebender Wert
Die Eingabe erfolgt im folgenden Format.
N
N ist eine ganze Zahl größer oder gleich 1 und kleiner oder gleich N.
Eingabewert Am Ende der letzten Zeile wird ein Zeilenumbruch eingefügt. Die Zeichenfolge wird von der Standardeingabe übergeben.
Erwartete Ausgabe
Beginnen Sie am Ende eine neue Zeile und fügen Sie keine zusätzlichen Zeichen oder Leerzeilen hinzu.
Bedingungen
In allen Testfällen sind folgende Bedingungen erfüllt.
・ 1 ≤ N ≤ 100 ・ N ist eine ganze Zahl
Eingabebeispiel 1
5
Ausgabebeispiel 1
1 2 Fizz 4 Buzz
Eingabebeispiel 2
20
Ausgabebeispiel 2
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 Fizz Buzz 16 17 Fizz 19 Buzz
Der Eingabewert ist ein ganzzahliger Wert von 0-100. Nach dem Empfang des Eingabewerts mit der Eingabefunktion ** Typkonvertierung ** vom str-Typ zum int-Typ mit der int-Funktion.
fizz-buzz_1.py
n = int(input())
Suchen Sie dann nach der Nummer, die Sie stattdessen anzeigen sollten. Dieses Mal verwenden wir die ** Bereichsfunktion **, da wir nur nach Ganzzahlen von 1 bis n suchen müssen. Zu diesem Zeitpunkt müssen Sie vorsichtig sein, wie Sie den ** Bereich ** der Bereichsfunktion angeben.
Wenn Sie zwei Argumente mit der Bereichsfunktion eingeben, lautet das erste Argument ~~ begin ~~ start und das zweite Argument ~~ end ~~ stop. Zu diesem Zeitpunkt enthält das Argument ~~ end ~~ stop nicht die Nummer selbst und gibt an, dass die vorherige Ganzzahl ausgegeben werden soll.
Mit anderen Worten ist die Ausgabe für "Bereich (1, 5)" 1,2,3,4 und ** 5 ist nicht enthalten. ** ** **
Wenn Sie 1,2,3,4,5 ausgeben möchten, müssen Sie range (1, 5 + 1)
angeben.
range_sample.py
print(list(range(1,5))) # [1,2,3,4]
print(list(range(1,6))) # [1,2,3,4,5]
In diesem Fall möchten wir einen ganzzahligen Wert von 1 bis n, also übergeben Sie ** 1, n + 1 ** als Argument an die Bereichsfunktion. In Kombination mit der for-Anweisung sieht es so aus.
fizz-buzz_2.py
n = int(input())
for i in range(1, n+1):
print(i)
"""
n =Um 5,
1
2
3
4
5
"""
Bestimmen Sie als Nächstes die Zahlen, die in fizzBuzz konvertiert werden müssen. Verwenden Sie dazu% (einen algebraischen Operator, um den Rest zu finden).
Wenn n durch 3 geteilt wird und der Rest Null ist, ist n ein Vielfaches von 3. Wenn der Rest von n geteilt durch 5 Null ist, ist n ein Vielfaches von 5. Wenn der Rest von n geteilt durch 15 Null ist, ist n ein Vielfaches von 3 und ein Vielfaches von 5.
Ein Vielfaches von 3 und ein Vielfaches von 5 bedeutet ein Vielfaches von ** 15.
Dieses Mal wird die if-elif-Aussage zur Beurteilung herangezogen.
Zu diesem Zeitpunkt ist es notwendig, die ** Urteilsverordnung ** zu beachten. Bestimmen, ob ~~ n ein Vielfaches von 3 oder 5 ist, Wenn Sie es schreiben, bevor Sie beurteilen, ob es ein Vielfaches von 15 ist, funktioniert es nicht. ~~ Um festzustellen, ob> n ein Vielfaches von 3 oder 5 ist, Wenn Sie es schreiben, bevor Sie beurteilen, ob es ein Vielfaches von> 15 ist, müssen Sie ein wenig überlegen.
Es gibt eine Methode, auf die @shiracamus hinweist. Bitte überprüfen Sie sie im Kommentarbereich unten. Dieses Mal möchte ich es gemäß der Reihenfolge des Urteils lösen.
if_sample.py
#Schlechter Code
n = 15
if n%3 == 0:
print("n ist ein Vielfaches von 3.")
elif n%5 == 0:
print("n ist ein Vielfaches von 5.")
elif n%15 == 0:
print("n ist ein Vielfaches von 3 und ein Vielfaches von 5.")
else:
print("n ist weder ein Vielfaches von 3 noch ein Vielfaches von 5.")
#n ist ein Vielfaches von 3.
Wenn n ein Vielfaches von 15 ist, wird bestimmt, dass es ein Vielfaches von 3 oder 5 anstelle eines Vielfachen von 15 ist. Denken Sie daran, dass es in der Reihenfolge von oben verarbeitet wird.
Stellen Sie also zunächst fest, ob es sich um ein Vielfaches von 15 handelt. Danach funktioniert es gut zu bestimmen, ob es ein Vielfaches von 5 oder ein Vielfaches von 3 ist.
fizz-buzz_3.py
n = 15
if n%15 == 0:
print("n ist ein Vielfaches von 3 und ein Vielfaches von 5.")
elif n%5 == 0:
print("n ist ein Vielfaches von 5.")
elif n%3 == 0:
print("n ist ein Vielfaches von 3.")
else:
print("n ist weder ein Vielfaches von 3 noch ein Vielfaches von 5.")
#n ist ein Vielfaches von 3 und ein Vielfaches von 5.
Im Allgemeinen scheint es beim Schreiben einer if-elif-Anweisung oft gut zu funktionieren, wenn die engeren Bedingungen zuerst geschrieben werden.
fizz-buzz.py
n = int(input())
for i in range(1, n+1):
if i%15==0:
print("Fizz Buzz")
elif i%5==0:
print("Buzz")
elif i%3==0:
print("Fizz")
else:
print(i)
https://qiita.com/KoyanagiHitoshi/items/3286fbc65d56dd67737c
Ich werde im Detail erklären, wo ich in der Vergangenheit gefangen wurde. Es war vielleicht ein Kreisverkehr und schwer zu verstehen, aber Fühlen Sie sich frei zu kommentieren, wenn Sie irgendwelche Bedenken haben.
Recommended Posts