Setup: beginnend mit der Zahl 32, ist die Summe der Quadrate 13 weil 3x3 + 2x2 = 13. Die Summe der Quadrate für 13 ist 10, weil 1x1 + 3x3 = 10. Die Summe der Quadrate für 10 ist 1, also 32 ist eine glückliche Zahl.Code nicht in der Lage, große Schleifen
Abtastwerteingang
Die Eingabe wird eine einzige positive ganze Zahl sein. Einige Beispiele werden hier gegeben.
Beispielausgabe
Das Programm muss angibt, ein Satz gedruckt werden, wenn die Eingangsnummer glücklich oder unglücklich ist, dann beenden.
32 ist eine glückliche Zahl
4565 ist eine unglückliche Zahl
42 ist eine unglückliche Zahl
5555 ist eine glückliche Zahl
tatsächliches Problem: wenn ich Eingabe große Zahl Wie 5555. Ich erhalte einen Fehler wie:
File "C:/Users/username/Desktop/bob.py", line 43, in sos
sos()
File "C:/Users/username/Desktop/bob.py", line 26, in sos
for x in range(repeat):
RuntimeError: maximum recursion depth exceeded in comparison
** Code: **
ans = input()
y = 5000 #this is so that the data does not loop forever
repeat = len(ans)
def sos():
global y
global repeat1
global ans
for x in range(repeat):
List = list(str(ans))
repeat1 = len(List)
repeat2 = len(List)
ans1 = int(List[int(repeat2)-int(repeat1)]) * int(List[int(repeat2)-int(repeat1)])
#print("ans1", ans1)
ans2 = int(List[int(repeat2)-(int(repeat1)-1)]) *int(List[int(repeat2)-int(repeat1-1)])
#print("ans2", ans2)
ans = ans1 + ans2
y -= 1
if x == 1:
print(this, "is a happy number")
else:
if y <=0:
print(this, "is not a happy number")
else:
sos()
sos()
Frage: Was kann ich tun, um diesen Fehler zu verhindern? Anfrage: Bitte versuchen Sie, meinen Code zu bearbeiten, anstatt Ihren eigenen zu erstellen. es hilft mir zu lernen, was ich falsch gemacht habe und es in der Zukunft reparieren, wenn es nötig ist.
Sie haben so viele unnötige Variablen und 'int' Aussagen ... Definieren Sie keine' repeat1' und 'Repeat2 'Als' len (List) ', verwende einfach eine Variable. Verwenden Sie keine Großbuchstaben. das ist konventionell für Klassen. Do 'Array' oder etwas. – HyperNeutrino
Es tut mir leid für den überschüssigen Code. Ich bin neu in der Programmierung, so dass es schwer für mich ist, alle meine Variablen und Ganzzahlen zu verfolgen. –
Bitte beachten Sie auch, dass dies ein HP Code Wars-Problem ist, also habe ich bereits eine Lösung, ich möchte nur wissen, warum mein Code nicht funktioniert. –