

Poradňácká hádanka
Poradňácká hádanka
Písmena nahraďte číslicemi:
DOTAZY
DOTAZY
DOTAZY
DOTAZY
DOTAZY
DOTAZY
DOTAZY
DOTAZY
=======
PORADNA
neboli 8x dotazy = poradna
Jestli jsem neudělal botu, tak jsou dvě řešení, kousek od sebe.
do C prekladaca nech si to strci sam kto chce :) DOba vypoctu bude radovo desatiny sekundy. Doba programovania par minut :)
Pekné riešenie.
Doplním podmienku, že cifry sa nemôžu opakovať:
Edit: Vypíše to:
Velmi pekne riesenie ;)
Mna nenapadlo ze overit sa to da spocitanim pouzitych cifier, a ine sposoby by boli trochu komplikovane... BTW. ja by som tam dal radsej zatvorky k tomu OR-ovaniu, istota je gulomet (kto si ma pamatat prioritu operatorov :)
Vyzkoušeno:
SiV5DJv2
Hezký, akorát bych to potřeboval trochu okomentovat.(nebo ne, pohledám si to)
---
S tím jsem to sem dával, abych viděl různý možnosti řešení.
kompletny komentar k tomu programu je tu:
alebo http://melkor.dnp.fmph.uniba.sk/~zenis/prirucky/c/ kap03.htm apod
http://en.wikipedia.org/wiki/Operators_in_C_and_C% 2B%2B
A bity a bitove posuny snad vies co su.
Děkuji.
este preistotu ti dam priklad: ked chcem z cisla x=123456
napriklad 3.cifru zprava, tak vydelim (operator delenie /) cislom 100, ziskam 1234 (len cele cislo pretoze oba operatory boli typ int). Potom urobim modulo (zvysok po deleni, operator %) cislom 10, a ziskam cifru 4.
Takze napr. (i/1000)%10 je 4.cifra zprava z cisla v premennej i, alebo i%10 je posledna cifra premennej i, apod.
P.S. tieto operacie a aj bitove operacie su VELMI RYCHLE. Dnesne CPU ich vedia urobit niekolko (aj 2-4) naraz v jednom jadre (paralelizuje si to jadro samo) kazdy takt. takze kludne aj 4*3 miliardy takych operacii za sekundu, kazde jadro. Naproti tomu operacie so stringami apod. su dost neefektivne ptz alokuju a kopiruju pamat atd. kludne aj 10000x pomalsie hlavne vo Windows kde MS alokacia pamate trva celu vecnost
<< je bitovy posun dolava, 1<<0 je 1, 1<<1 je 10 binarne, takze 2. 1<<2 je 100 binarne, takze 4. Atd.
| je operacia bitove OR, takze napr. 100binarne OR 1binarne je 101binarne.
& je operacia bitove AND, da sa pouzit aj na testovanie bitu. Napr. 101binarne AND 100binarne = 100binarne, je nenulove tak to znamena ze 3.bit zprava bol 1.
001binarne AND 100binarne = 0, to znamena ze 3.bit zorava bol 0.
Dík za vyčerpávající výklad.
Řešení jsem upravil pro příklad PSICI+PSICI+PSICI=HAFANI
codepad.org - PSICI+PSICI+PSICI=HAFANI
Trochu je mi divný, že
for (int j = 0; j < 10; ++j) dává stejný čísla jako
for (int j = 0; j < 10; j++) tedy [0..9]
V tom prvním případě bych spíš čekal [1..10]
Programovanie neni o pocitoch ani ocakavaniach ale o absolutne preciznych definiciach a priebehoch.
for(neco1;podmienka;neco2) Command;
je presne a precizne difinovane ako toto:
Z toho obrazka vyplyva napr. aj to ze ak podmienka nevyhovuje hned na zaciatku tak sa nevykonna Command ani raz. A aj to ze je uplne jedno ci napises do neco2 ++ pred alebo po alebo ci tam das i+=1 mozes tam dat dokonca aj rotacie a aj viac veci naraz prekladacu je to uplne fuk on to proste vykona vsetko to co tam nacpes do neco2 v spravnom okamziku.
P.S> vpodstate
for(neco1;podmienka;neco2) Command;
je uplne stejne jak
for(neco1;podmienka;) { Command; neco2; }
aj to druhe je korektne a dovolene :)
P.S.2. rozdiel medzi i++ a ++i by tam bol len vtedy ak by si chcel menit v tom "neco2" viac veci (menit zaroven i a aj nejake ine z), napr. by si tam napisal z = ++i tak by to znamenalo i+=1; z=i. Ak by si napisal z=i++ tak by to znamenalo z=i; i+=1, a to je rozdiel.
Spíš bych doplnil podmínku, že použité vazby číslic s písmeny ve slově DOTAZY se musí
shodovat ve výsledku ve slově PORADNA
D=5, O=0(nula), A=8
Tedy pro ty kteří to v úvodu nepochopili.
Tady jsou další podobné...
hadanky-algebrogram.html
11.htm