November 23, 2020

Uzun arifmetika

Masala:

N soni berilgan. N sonining raqamlari yig’indisini xisoblovchi dastur tuzing (1<N<=10^5000)

Yechilishi:

Agar 1<N<=10^5000 shartini xisobga olmaganda, masala oson yechiladi. Masalaning qiyinchiligi ham shunda…

Masala shartida diapazonga sig’maydigan son bormi, unda Sizning oldingizda 2 ta yo’l bor:

  1. Massivtan foydalanish
  2. Satrdan foydalanish

Yuqoridagi masalani satrdan foydalanib ishlagan qulay va samarali bo’ladi.

  • Dastlab N qatorni kiritamiz:
  • S=0 o’zgaruvchisi, yig’indini xisoblash uchun;
  • N satrning harbir belgisini (bu ushbu sonning raqamlari) dastlab songa aylantiramiz, keyin S o’zgaruvchisiga qo’shib boramiz. Ushbu jarayon N satrning barcha belgilarini bo’lguncha davom etadi.

Demak, biz satrni to’lig’i bilan emas, har bir belgisini butun tipga aylantirib, keyin ustida matematik amallar bajardik.

Javada kod quyidagicha bo’ladi:

Siz bunnanda yaxshiroq, samaraliroq algoritm tuzsangiz, bizga xabar bering

Bog’lanish uchun: A.Orınbaev

https://t.me/programmalastiriwJava

https://t.me/TITUNFProgDogerek