Pereiti prie turinio

Rekomenduojami pranešimai

Sveiki, turiu tokią užduotį. Žodžiu duota informacija "kiek praėjo sekundžių" ir skaičiai "1 arba 0" na ten skaičių gali būti nuo 1 iki 100 ir 1 sekundę turi keistis 1-as skaičius, antrą sekundę turi keistis 2-as ir 3-ias skaičius, 3 sekundę - 4, 5 ir 6-as skaičius. Esmė tame, kad maždaug viską ir pasidarau, bet jeigu tarkim pereina per visus skaičius, o sekundžių dar yra, tai turi pradėt vėl nuo pradžios, kaip tai padaryti?

Nuoroda į pranešimą
Dalintis kituose puslapiuose
Esmė tame, kad maždaug viską ir pasidarau, bet jeigu tarkim pereina per visus skaičius, o sekundžių dar yra, tai turi pradėt vėl nuo pradžios, kaip tai padaryti?

 

Nežinau ar supratau sąlygą, nes truputį painiai surašei, bet netinka tiesiog susirašyt duotų skaičių į masyvą? Ir kai pasieki paskutinį masvyo elementą, pradedi skaičiuot vėl nuo pirmo.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

i - tarpinis kintamasis, s - sekundės, n - kiek iš viso yra skaičių, arr[n] - n dydžio masyvas su tavo skaičiais.

invert(var a : integer) - procedūra, kuri invertuoja (pakeičia) skaičius - iš 1 į 0 ir atvirkščiai.

 

i := 1
while s > 0 do
begin
 invert(arr[i]);
 inc(i); // tas pats, kas i++ arba i := i + 1.

 if i = n then 
   i := 1;
 dec(s); // s--
done;

 

Gali elgtis maždaug šitaip. :-)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Performuluoju sąlygą:

Yra eilutė. Joje pirmas skaitmuo rodo kiek sekundžių yra praėję, antras skaitmuo rodo kiek toliau skaitmenų yra. Tolimesni skaitmenys yra "1" arba "0". Tarkim jeigu pirmas eilutės skaičius yra 5, tai reikia parašyti rezultatą, kuris bus po 5 sekundžių. Kaip minėjau, pirmą sekundę keičiasi pirmas skaičius, antrą sekundę keičiasi sekantys du numeriai(taigi po dviejų sekundžių iš viso būna pasikeitę 3 skaičiai), po trijų sekundžių keičiasi sekantys trys skaičiai(taigi po trijų sekundžių iš viso bus pasikeitę 6 skaičiai). Pagrindinė bėda yra tame, jeigu praeina visus skaičius, turi vėl pradėti nuo pradžių, o jeigu tarkim yra sekundžių daugiau, tai per sekundę ten ir tarkim gali 12 skaičių pasikeist, nors tarkim skaičių yra tik 6. Pvz.:

5 4 1 0 1 0 rezultatas 1 0 1 1

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...