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.
Dáslep 10 lıq sanaq sistemasında berilgen sandı basqa sanaq sistemasına aylandıramız. Onnan soń basqa sanaq sistemasına aylandırǵan sanda birdey cifrlar bar yamasa joqlıǵı tekseriledi. Máselen, 10, 123, 4358 sanlarında birdey cifrlar joq, al 101, 3342, 10000 sanlarında birdey cifrlar birneshe. Tekserip shıǵıw qolaylı bolıwı ushın, 10 lıqtaǵı sandı basqa sanaq sistemasına aylandırıw waqtında, hárbir aylanǵan cifrin massivke menshiklep baramız.
Masala sharti bo’yicha 3 sonda ham bor bo’lgan umumiy raqamlarni o’sish tartibida chiqarish kerak. Bu yerda birxil raqamlar birnechta bo’lsa, ularning faqat bittasi olinadi. Bundan ko’rinadiki, 0 dan 9 gacha raqamlarni, berilgan 3 sonning barchasida bor yoki yo’qligini aniqlaymiz. Agar bor bo’lsa, massivga yozamiz. 3 songa ham 1 dan 10^80 gacha oraliqta sonlar kiritilishi mumkin. Shuning uchun ularni satrga yozamiz.
Másele shárti boyınsha 3 sanda da bar bolǵan ulıwma cifrlardı ósiw tártibinde shıǵarıw kerek. Bunda birdey cifrlar birneshe bolsa, olardıń tek birewi alınadı. Bunnan kórinip turǵanınday, 0 den 9 ǵa shekemgi cifrlardı berilgen 3 sannıń hámmesinde bar yamasa joqlıǵın anıqlaymız. Eger bar bolsa, arnawlı massivke jazıp baramız. 3 sanǵa 1 den 10^80 ge shekemgi aralıqtaǵı sanlar kiritiliwi múmkin bolǵanlıqtan, olardı qatarlarǵa jazamız.
Masalani yechishning 2 ta yo’lini qaraymiz. Birinchisi, java.math paketidagi BigInteger sinfidan foydalangan holda, ikkinchisi uzun sonlarni hisoblash algoritmidan foydalangan holda.
Máseleni sheshiwdiń 2 jolın qarap ótemiz. Birinshisi, java.math paketindegi BigInteger klasınan paydalanǵan halda, ekinshisi uzın sanlardı esaplawdıń algoritminen paydalanǵan halda.
Avvalroq aytganimizdek, agar dasturingizda ishlatiladigan sonlar oddiy tiplarga sig’masa, unda satrlarda yoki massivlardan foydalaning. Bunnan tashqari BigInteger va BigDecimal sinflari ham bor, ular haqida keyinroq to’xtalib o’tamiz...
Aldın aytıp ótkenimdey, eger programmadaǵı islesetuǵın sanlar ápiwayı tiplerge sıymaytuǵın bolsa, onda qatarlardan yamasa massivlerden paydalanıń. Bunnan basqada BigInteger hám BigDecimal klasları bar bolıp, olar haqqında keyinrek toqtalıp ótemiz.
N soni berilgan. N sonining raqamlari yig’indisini xisoblovchi dastur tuzing (1<N<=10^5000)
N sanı berilgen. N sanınıń cifrlarınıń qosındısın anıqlawshı programma dúziń (1<N<=10^5000).