Ownmen Posted September 20, 2011 Report Share Posted September 20, 2011 Sveiki! Atvainojos, ka esmu iegriezies php forumā, bet Latvijā zinu tikai php.lv un boot sakarīgus forumus. Ķeršos pie lietas - Dots uzdevums: Dots naturāls skaitlis n. Izdrukāt tos skaitļa n reizinātājus, kuri ir kāda naturāla skaitļa kvadrāti. Tātad, ja, piemēram, ir ievadīts skaitlis 64, ar pow() f-ju iegūsti visas nepieciešamās kvadrātu vērtības, tad skaitli sāku cikliski sadalīt reizinātājos un tad sāku pārbaudīt vai kāds no reizinātājiem ir kāda skaitļa kvadrāts, es tā to saprotu. (pareidzamais rezultāts - 1, 4, 16, 64) Mans kods programmai: http://code.ihack.lv/84 bet rezultāts ir šāds: 64 1 64 4 16 9 9 4 4 4 16 4 25 1 1 1 36 1 1 1 1 1 1 1 1 1 1 1 1 1 49 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 64 1 Piedodiet, par garo virkni... pareizos rezultātus jau programma izdod, bet tā, diemžēl, izdod arī nevajadzīgos rezultātus. Cik es noprotu, tā parāda arī nenaturālo skaitļu salīdzināšanu un rezultātus, bet nezinu, kā to novērst. Varbūt jums ir idejas labākam programmas variantam vai problēmas novēršanai? Quote Link to comment Share on other sites More sharing options...
daGrevis Posted September 20, 2011 Report Share Posted September 20, 2011 Pirmais kas iešāvās (bum, bum - paf) prātā... pārbaudi, vai skaitlis ir naturāls. Ja jā, tad tikai vadi laukā. Quote Link to comment Share on other sites More sharing options...
codez Posted September 20, 2011 Report Share Posted September 20, 2011 http://codepad.org/jjHzRuJV Quote Link to comment Share on other sites More sharing options...
waplet Posted September 20, 2011 Report Share Posted September 20, 2011 Šaubos, ka visu to skaitļu kvadrātsaknes dalīsies ar to 28... bez atlikuma :) codez, vai nu tu, vai es pārpratām. Quote Link to comment Share on other sites More sharing options...
dezertieris Posted September 20, 2011 Report Share Posted September 20, 2011 paldies, par atbildēm, viss darbojas :) Quote Link to comment Share on other sites More sharing options...
codez Posted September 20, 2011 Report Share Posted September 20, 2011 (edited) Dots naturāls skaitlis n. Izdrukāt tos skaitļa n reizinātājus, kuri ir kāda naturāla skaitļa kvadrāti. Skaitļa n reizinātājs ir skaitlis, kurš dala n bez atlikuma. Un vienlaikus viņam ir jābūt arī kvadrātam, tāpēc primitīvākais algoritms ir pavisam vienkārš pārbaudīt visus kvadrātus līdz n, vai tie dalot n, dod atlikumu 0. Protams tas ir pilnās pārlases algoritms. Ātrāks algoritms varētu būs sadalīt skaitli pirmreizinātājās un tos kombinēt pa pāriem tā, kā tie veido kvadrātu, uzreiz iegūt visus variantus, bet šāds algoritms ir krietni sarežģītāks. Edited September 20, 2011 by codez Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.