December 9, 2020

№7 Masalaning yechilishi va kelgan javoblar

Yechilishi:

Dastlab 10 lik sanoq sistemasida berilgan sonni boshqa sanoq sistemasiga aylantiramiz. Undan so’ng boshqa sanoq sistemasiga aylantirilgan sonda birdek raqamlar bor yoki yo’qligi tekshiriladi. Masalan, 10, 123, 4358 sonlarida birdek raqamlar yo’q, 101, 3342, 10000 sonlardi esa birdek sonlar birnechtani tashkil qiladi. Birdek sonlarni tekshirish qulay bo’lishi uchun, 10 liktagi sonni boshqa sanoq sistemasiga aylantirish vaqtida, aylantirilgan harbir raqamni massivga yozib boramiz.

10 lik sanoq sistemasidan boshqa sanoq sistemasiga o’tkazish quyidagicha amalga oshirladi: 10 likdagi sonni boshqa sanoq sistemasining asosiga bo’lib boriladi. Masalan, 2 likka o’tkazish uchun 2 ga, 3 likka o’tkazish uchun 3 likka va hokozo. Amallarni bajarib bo’lgandan so’ng, barcha qoldiqlarni oxiridan birlashtirsak, tegishli sanoq sistemasidagi son paydo bo’ladi.

10 liktagi 25 sonini 2 lik sanoq sistemasiga o’tkazaylik:

25 (10 lik) = 11001 (2 lik)

Ushbu sonni 3 lik sanoq sistemasiga o’tkazaylik:

25 (10 lik) = 221 (3 lik)

Xuddi shunaqa yo’l bilan 2, 3, …, 36 lik sanoq sistemalariga aylandiramiz va paydo bo’lgan yangi son raqamlarini massivga yozamiz. Massiv uchun qansha joy ajiratilishi kerak? Buni aniqlash uchun masala shartida berilgan oraliqtagi eng katta sonni 2 likk aylandirib, necha xonali son paydo bo’lishini ko’ramiz. Ya’ni, 1000000000 (10 lik) = 11 1011 1001 1010 1100 1010 0000 0000 (2 lik). 2 likta 30 xonali son paydo bo’ldi. Shuning uchun massivga elementlari uchun 30 ta joy ajiratsak yetarli bo’lar eken. Nima uchun 2 likta tekshirdik? Chunki eng ko’p xonali son 2 likta chiqadi. Buni o’zlaringiz ham tekshirip ko’rsangiz bo’ladi.

Bizga faqat 1 ta to’g’ri va aniq javob keldi:

Anvar Saparbaev

O’zimizni kod:

Siz bundanda yaxshiroq, samaraliroq kod yozsangiz bizga xabar bering!

Bog’lanish uchun: A.Orınbaev

https://t.me/programmalastiriwJava

https://t.me/TITUNFProgDogerek