Mudae_Wasabi tərəfindən yazılmışdır
Şərtdə bizə ilk olaraq m ədədinin daxil edildiyini deyir:
m = input()Davamında bizə dediyi budur: "Əgər həmin ədəd palindrom deyilsə, onun rəqəmlərini əks sırada yazırıq və verilən ədədlə toplayırıq."
Yəni bu o deməkdir ki, daxil etdiyimiz m ədədi palindrom ədəd olana dək biz onun rəqəmlərini əks yazıb üzərinə gəlməliyik.
"Bu prosesi palindrom ədəd alınana qədər davam etdiririk. İcra edilən əməliyyatların sayını verilmiş ədədin palindromluq dərəcəsi adlandıracağıq."
İcra edilən əməliyyatların sayının ilkin dəyəri 0 olur.
i = 0m ədədinin palindrom olduğu anda kodun dayanması üçün:
while str(m) != (str(m)[::-1]):Burada m [ : : -1] m ədədini əksinə çevirir. Məsələn: 785 —> 587
!= isə == ifadəsinin inkarıdır. məsələn, if a == 5 dedikdə kod a ədədinin 5 dəyərində icra olunur, lakin a != 5 a ədədinin 5 olmayan qiymətində icra olunur.
Növbəti olaraq biz a dəyəri yaradıb bu dəyəri m ədədinin tərsi olaraq tanıda bilərik:
a = int(str(m)[::-1])Qeyd: a ədədini int olaraq tanıtmamızın səbəbi toplama əməliyyatının string tipi ilə edilə bilməməsidir
İndi isə m ədədimizin yeni dəyərini əvvəlki dəyərlə əvvəlki dəyərin tərs yazılmış rəqəmlərinin cəmi kimi tanıtmaqdır:
m = int(m) + aVə bu əməliyyatın sonunda əməliyyatlar sayının 1 artması üçün:
i += 1Ən sonda isə bizə lazım olan "palindromluq dərəcəsi"dir, yəni bu kodda tanıtdığımız i:
print(i)Kodun yekun görünüşü:
m = input()
i = 0
while str(m) != (str(m)[::-1]):
a = int(str(m)[::-1])
m = int(m) + a
i += 1
print(i)