eMatematikas Prisijunk Forumas Egzaminų užduotys ONLINE testai

Programavimo užduotis. Bėdos su sintakse C


Duotas natūrinis skaičius n (n<=9999.Nustatyti , ar šis skaičius yra polindromas,pvz.,7777, 8228,0440. Kiek aiskinausi polindormas tai skaicius, kuri galima skaityti atbulai. Pacia logika suprantu. reikia issiskaidyti skaicius po viena ir tikrint ar isskaidytas skaicius lygus pradiniam. Tik kaip tai padaryti? Niekaip su sintakse nesusitvarkau. C++

0440 įdomus skaičius. Nemanau, kad jį laikyčiau palindromu. Ką nors pats esi padaręs? Sugebėtum turinti kažkokį skaičių x sužinoti kokiu skaitmeniu jis pasibaigia? Išskaidyti skaitmenimis nežinomo ilgio skaičių? Aš tai paimčiau skaičių x, "parašyčiau" jį atbulai ir priskirčiau y ir sulyginęs x ir y sužinočiau ar skaičius yra palindromas. Aišku, viskas daug paprasčiau, jei galima dirbti su string'ais, bet čia beveik kaip sukčiavimas :D

Su skaitmenu issiskaidymu ir kyla bedos. Kaip man ji issiskaidyti, jei neturiu pacio skaiciaus?

Neturi? Juk jį iš kažkur nusiskaitai.

Tai cia su cin komanda dar dirbti galima? na gerai tai kaip suprantu jei skaicius keturzenklis, tai reikia 4 kintamuosius susikurti taip? ir veliau tiem kintamieisiems priskirti skaicius? (Zinau, kad galiu daug nusisneket, bet papasciausiai norisi ismokt).

Šiame uždavinyje nesvarbu iš kur tas skaičius gaunamas. Galbūt yra paleistas kažkoks ciklas nuo 1 iki 9999 ir norima patikrinti kurie skaičiai tame intervale yra palindromai. O gal atsitiktinai parenkamas skaičius intervale [1;9999]. Tau tiesiog reikia sugalvoti algoritmą, kuris tą galėtų patikrinti. Ne, nereikia saugoti kiekvieno skaitmens atskirame kintamajame. Ir skaitmenų gali būti kiek tik nori (na gerai, max 4 :D ). O nusišnekėjimai man per daug netrukdo :D . Parodysiu, kaip aš parašyčiau skaičių 1234 atbulai. Gal pastebėsi kokį nors dėsningumą ir sugalvosi algoritmą pats.
n = 1234
x = 0

t = n % 10 (t = 4)
x = 10 * x + t ( x = 4)
n = n / 10 (n = 123)

t = n % 10 (t = 3)
x = 10*x + t (x = 43)
n = n / 10 (n = 12)

t = n % 10 (t = 2)
x = 10*x + t (x = 432)
n = n / 10 (n = 1)

t = n % 10 (t = 1)
x = 10*x + t (x = 4321)
n = n / 10 (n = 0)

Arba tiesiog gali negalvoti ir atsakymą pamatyti Luko pranešime (jei ten viskas gerai)

jau antra eilute man nesuprantama. is kur tas x? x = 10 * x + t ( x = 4)?

pakeista prieš 10 m

Dėl tos void funkcijos (turbūt visi galvos, kad į įsivaizduojamus pranešimus atsakau :D ), tai manyčiau, kad būtų geriau, kad funkcija būtų ne void, o int ir gražintų skaičių, kuris yra parašytas atbulai. T.y. funkcija gauna skaičių ir gražina tą skaičių, tik parašyta atbulai.

Kokia x reikšmė prieš tą sakinį? x = 0, todėl tas sakinys yra ekvivalentus x = t. Taip parašiau, kad pastebėtum dėsningumą ir kažkokį ciklą.

pakeista prieš 10 m

Tiksliai. Labai aciu. Kad ir kaip geda dar kazko paklausiu, nes nemanau, kad viska suprasiu.

pakeista prieš 10 m

Nori sudalyvauti šioje temoje ir parašyti savo pranešimą? Prisijungti »