Masala #8P7VHKCWPS
Raqamli ildiz
Berilgan musbat butun sonning raqamli ildizini toping. Raqamli ildiz - bu sonning raqamlarini ketma-ket qo’shish natijasida hosil bo’lgan bitta raqam. Agar son bitta raqamdan iborat bo’lmasa, raqamlar yig’indisini hisoblashni bitta raqam qolmaguncha davom ettiring.
bitta son(masalan:38)
javobi chiqsin(masalan(38 ga - 2)
# | input.txt | output.txt |
---|
Kodning qisqacha tushuntirilishi:
digitalRoot(n)
funksiyasi berilgann
sonining raqamli ildizini hisoblaydi.while n >= 10:
sikli son bitta raqamga aylanguncha davom etadi.- Ichki
while n > 0:
sikli sonning raqamlarini yig’indisini hisoblaydi. n % 10
sonning oxirgi raqamini oladi.n //= 10
sonning oxirgi raqamini olib tashlaydi.sum_digits
raqamlar yig’indisi saqlanadi.n = sum_digits
raqamlar yig’indisi yangi son sifatida ishlatiladi.- Sikl tugagandan so’ng,
n
raqamli ildizni o’z ichiga oladi va u qaytariladi.
Bu masala oson hisoblanadi va uning yechimi tushunarli va qisqa.