December 4, 2020

№6 Máseleniń sheshiliwi hám kelgen juwaplar analizi

Sheshiliwi:

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.

Bul algoritmdi Javada ámelge asırıw ushın, 3 sandı String arqalı kiritemiz hám usı 3 sannıń ishinde 0 den 9 ǵa shekemgi cifr barlıǵın anıqlaw ushın bolsa, for cikl operatorınan paydalanamız. Hárbir qatar ishinde 0 den 9 ǵa shekemgi cifrlar bar yamasa joqlıǵın anıqlaw ushın, indexOf metodınan paydalanamız. indexOf metodı qatar ishinde simvol (úles qatar) bar bolsa, sol simvoldıń (úles qatar) qatardaǵı poziciyasın (jaylasqan ornın) qaytaradı. Eger bunday simvollar birneshe bolsa, olardıń birinshi ushırasqanın qaytaradı. Al, bunday simvol qatarda joq bolsa -1 mánisin qaytaradı. Bunda qatardaǵı simvollar 0 den baslap nomerlenedi. Máselen, S="123456"; int k = S.indexOf(‘2’); // k = 1 boladı.

Qatarlar menen islewshi metodlar haqqında tómendegi sayttan tolıq tanısıp shıqsańız boladı: https://metanit.com/java/tutorial/7.2.php

Demek joqarıdaǵı metod 0 yamasa 0 den úlken mánis qaytarsa usı simvol qatarda bar, keri jaǵdayda (-1) qatarda bunday simvol joq. Eger qatarda usınday simvol bar bolsa, massivke jazıp baramız. Bunda massiv elementleri sanı 10 nan aspaydı, sebebi 10 lıq sanaq sistemasında 0…9 dan basqa cifr joq. Bunda massivti ósiw tártibinde sortirovka qılıw shárt emes, sebebi tómen sannan joqarıǵa qaray tekserip, massivke jazıp baramız.

Joqarıdaǵı algoritm boyınsha Javada programması:

Kelgen juwaplardıń analizi:

Saparbaev Anvar joqarıdaǵı algoritm boyınsha kelgen, biraq indexOf metodınan paydalanbaǵanlıǵı sebepli qosımsha 3 for cikl operatorınan paydalanıwına tuwra kelgen. Biraq programma hárdayım durıs nátiyje shıǵaradı:

Jarılkapov Ajiniyaz, basqa joldan barǵan, yaǵnıy 1 sannıń ishindegi cifr basqa sanda barlıǵı anıqlanǵan, bunnan tısqarı massivti sortirovka qılǵan, nátiyjede qosımsha 4 for cikl operatorınan paydalanıwǵa tuwra kelgen. Programma kodı optimal bolmasada, programma durıs nátiyje beredi:

Yuldashev Quwanıshbek, joqarıdaǵı Ajiniyazdıń jolına uqsas joldan paydalanǵan, biraq Python tiliniń ózgesheligi sebep, kod bir qansha azayǵan. Programma durıs nátiyje shıǵaradı:

Siz bunnanda jaqsı, effektiv algoritm dúze alsańız, bizge xabar beriń!

Baylanıs ushın: A.Orınbaev

https://t.me/programmalastiriwJava

https://t.me/TITUNFProgDogerek