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:
- Massivtan foydalanish
- 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