Masala #1056

Xotira 16 MB Vaqt 1000 ms Qiyinchiligi 30 %
14

  

Raqamlar yig'indisini top!

Jahongir so'ngi kunlarda natural sonlar ustida ko'p ishlaganligi sababli uni raqamlar yig'indisi to'g'risidagi har xil g'oyalar qamrab oldi. Shulardan birini sizlar bilan bo'lishmoqchi. U bir son o'yladi sizdan esa uni raqamlar yig'indisi toki 1 xonali son bo'lgunga qadar qo'shib borishdan hosil bo'lgan sonni topishingizni so'rayapti. Aytaylik u 897 ni o'ylagan bo'lsin:

897 => 8 + 9 + 7 = 24

24 => 2 + 4 = 6

demak sizdan javob sifatida 6 ni kutadi.

Faqat muammo shundaki undan faqat bir narsani so'rashingiz mumkin qaysidir sonni aytasiz u o'zi o'ylagan sondan siz aytgan sonni ayirib uning raqamlar yig'indisini aytadi. Bunda u o'ylagan son milliardan oshmaydigan nomanfiy butun son. Siz undan faqat bir marta savol so'rashingiz mumkin. Agar so'rovlar soni oshib ketsa Time Limit tarzida javob olasiz.


Kiruvchi ma'lumotlar:

Kirish faylida so'rovingizga mos ravishda hosil bo'lgan sonning raqamlar yig'indisi chop etiladi. Agar u manfiy son bo'ladigan bo'lsa uning absolyut qiymatining raqamlar yig'indisini hisoblaydi va uning manfiy ishoradagi qiymatini qaytaradi.


Chiquvchi ma'lumotlar:

Chiqish faylida mos ravishda "- X" ko'rinishida so'rov yuborasiz. Javobni esa "! A" ko'rinishida yo'llaysiz. Bunda \(1 \le X \le 10^9\) va \(0 \le A \le 10^9\).


Misollar
# input.txt output.txt
1
0
- 288
! 9
Izoh:

1-testga izoh:

288 ni ayirganda 0(nol) chiqdi demak u 288 ni o'ylagan.

288 => 2 + 8 + 8 = 18

18 => 1 + 8 = 9

Shunday qilib javob 9. 

  • 288 ni qanday bildingiz?
  • Chunki testlarni o'zim tuzganman:)
  • Biz qanday bilamiz?
  • Barcha sonlar uchun ishlaydigan dastur yozasiz.

ESLATMA: Interaktiv masalada sizning javobingizni hakamlar hay’ati qabul qila olishi uchun siz har bir so’rovingiz oxirida

  • Agar Pascal tilida ishlagan bo’lsangiz: flush(output)
  • Agar C/C++ tilida ishlagan bo’lsangiz fflush(stdout) yoki cout.flush()
  • Agar Java tilida ishlagan bo’lsangiz System.out.flush()
  • Agar pythonda ishlagan bo’lsangiz sys.stdout.flush()
  • Agar C# tilida ishlagan bo’lsangiz Console.Out.Flush()

Buyruqlardan birini yozishingiz kerak bo’ladi!

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