Masala #8P7VHKCWPS

Xotira 32 MB Vaqt 1000 ms Qiyinchiligi 60 %
14
Muallif: Mavjuda

  

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.


Kiruvchi ma'lumotlar:

bitta son(masalan:38)


Chiquvchi ma'lumotlar:

javobi chiqsin(masalan(38 ga - 2) 


Misollar
# input.txt output.txt
Izoh:

Kodning qisqacha tushuntirilishi:

  • digitalRoot(n) funksiyasi berilgan n 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.

Yechimini yuborish
Bu amalni bajarish uchun tizimga kiring, agar profilingiz bo'lmasa istalgan payt ro'yxatdan o'tishingiz mumkin