Guten Abend. Ich habe versucht, ein Anfänger zu sein Ich hoffe, es wird für alle hilfreich sein.
Wie können wir zum Beispiel 3 erreichen! (= 3 * 2 * 1)?
print(3*2*1)
Es ist geschafft (lacht)! Warum schreiben Sie es dann nicht so mit def?
test.py
def test(n:int=3):
if n>1:
return n * test(n-1)
else:
return 1
print(test())
Ich habe es eilig mit dem Anfangswert 3 versucht. Lassen Sie uns sie vorerst einzeln ersetzen. Erstens, wenn n == 3.
test.py
# n ==Wenn 3
def test(n:int=3):
#n ==3 Gehen Sie also hinein, wenn
if n>1:
#return 3 * test(3-1)
return n * test(n-1)
else:
return 1
print(test())
Hurra. Ich kann raus, weil die Rückkehr angekommen ist !! 3 * test(2) !? Sie können nicht beenden, ohne Test (2) zu kennen. Es gibt keine Möglichkeit. Ich bin nicht sicher, aber betrachte n == 2, dh Test (2).
test.py
# n ==Wann
def test(n:int=2):
#n ==2 Gehen Sie also hinein, wenn
if n>1:
#return 2 * test(2-1)
return n * test(n-1)
else:
return 1
print(test())
Hmm !? Rückgabe 2 * Test (1)!? Test () erscheint erneut, diesmal ist es jedoch Test (1). Es kann nicht geholfen werden, versuchen wir es auch mit Test (1).
test.py
# n ==Wenn 1
def test(n:int=1):
if n>1:
return n * test(n-1)
#n ==Da es 1 ist, geht es sonst rein
else:
#Rückgabe 1
return 1
print(test())
Wenn n == 1 ist, ist es vorerst 1, also Ich fand, dass die Antwort 1 ist. Ich bin froh, dass ich endlich eine ganze Zahl getroffen habe (lacht)
Lass es uns einmal organisieren. Nach dem Ausführen von n == 3, wie in der Abbildung gezeigt, erschien n == 2 und dann n == 1. Als Bild ist 2 * Test (1) in Test (2) eingebettet. Es scheint, dass 1 * Test (0) in Test (1) eingebettet ist.
Was wir jetzt wissen ist, dass 1 * Test (0) 1 * 1 ist, Das heißt, es ist nur 1.
Okay, ignoriere 3 * Test (2) einmal Ersetzen wir Test (1) durch 2 * Test (1) in der Mitte der folgenden Abbildung durch 1 * Test (0). Da 2 * Test (1) == 2 * {1 * Test (0)} ist, wissen wir, dass 2 * 1 = 2 ist. Das bedeutet. .. .. 3 * Test (2) == 3 * {2 * Test (1)} == 3 * {2 * 1}. Damit habe ich es geschafft, 3 auszudrücken!
Wie oben erwähnt, wenn sich ein bestimmtes Ereignis einschließt Es soll rekursiv sein.
Mit dieser Idee kann natürlich nicht nur 3!, Sondern auch die Skala von n ausgedrückt werden. Es ist eine einfache Beschreibung, aber es ist kompliziert, wenn man richtig darüber nachdenkt. Es war interessant, danke für deine harte Arbeit (≧ ▽ ≦).