Kaprekar -Zahlen in Python [Duplikat]Python

Python-Programme
Anonymous
 Kaprekar -Zahlen in Python [Duplikat]

Post by Anonymous »

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?>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post