Kaprekar -Zahlen in Python [Duplikat]

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Kaprekar -Zahlen in Python [Duplikat]

by Anonymous » 24 Aug 2025, 23:37

Ich habe ein Problem bei Hackerrank gelöst und das Problem ist wie folgt: < /p>

modifiziert Kaprekar < /strong> Zahl ist ein positives Ganzzahlen -N -Nummern n mit D -Ziffern, sodass wir in zwei Teile. Ein rechter Handstück mit D -Znigungen. Die SUB -HAND -Digiten enthalten. Zahl (d. H. L + r = n). Zwei Teile entsprechen der ursprünglichen Zahl. Also habe ich das folgende Code geschrieben: < /p>

Code: Select all

def checkIsKaprekar( num ):
string_num = str(num**2)
if num == int(string_num[:len(string_num)//2]) + int(string_num[len(string_num)//2:]):
return True

kaprekars = [ str(i) for i in range(int(input()),int(input())) if checkIsKaprekar(i) == True ]
print (' '.join(kaprekars))
Das Problem mit der obigen Lösung ist, wenn wir einstellige Zahlen übergeben, sie werden in eine Zeichenfolge konvertiert, von der die rechte Hälfte die Zahl selbst ist und die linke Hälfte '' ist. Jetzt konvert ich diese Zeichenfolgen in int () , was eine Ausnahme ausgelöst hat.def checkIsKaprekar( num ):
string_num = str(num**2)
left_string = string_num[:len(string_num)//2]
right_string = string_num[len(string_num)//2:]
left_num = int(left_string) if left_string != '' else 0
right_num = int(right_string) if right_string != '' else 0
if num == left_num + right_num:
return True

kaprekars = [ str(i) for i in range(int(input()),int(input())) if checkIsKaprekar(i) == True ]
print (' '.join(kaprekars))
< /code>
Aber ich mag diesen Code nicht, obwohl er den Zweck löst. Wie kann ich meinen ursprünglichen Code optimieren, um die richtige Ausgabe zu erzeugen?>

Top