Stránka 1 z 1

Prepis do c++

Odeslat příspěvekNapsal: 4. 4. 2009 11:45
od mariank
Je daný algoritmus:
read(a); s:=0;
repeat
s := s + a mod 2;
a := a div 2;
until a = 0;
write(s);
a, Koľkokrát prebehne cyklus pre vstup a = 10?
b, Nájdi hodnotu vstupnej premennej a takú, aby výstup bol s = 3
c, Aké je najmenšie číslo, pre ktoré cyklus prebehne 4 krát?


Prepise to niekto do c++, tak aby to fungovalo ?
Vopred dik.

Re: Prepis do c++

Odeslat příspěvekNapsal: 4. 4. 2009 13:23
od wizpal
a) 4krát.
b) 13, 14, ...
c) 8

Kód: Vybrat vše
#include <iostream>

int main()
{
    int a = 10, s = 0;       
   
    do
    {
        s = s + (a % 2);
        a = a / 2;       
    } while(a != 0);
   
    std::cout << s;
}

Re: Prepis do c++

Odeslat příspěvekNapsal: 4. 4. 2009 17:40
od mariank
Namiesto a!=0 som mal len a=0
Preto mi to neslo.

Dik.

Re: Prepis do c++

Odeslat příspěvekNapsal: 4. 4. 2009 18:36
od Beholder_
Já zíram ...
wizpal konečne predviedol zmysluplný kód :tleskani , a dokonca bez poznámok
o lenivosti niekoho

čo sa týka toho b) 13,14,... postupnosť takto nezačína!
správne je 7,11,13,14,19,...
sú to všetky tieto čísla a :
nech x,y,z sú celé čísla, pre ktoré platí
x>y>z>=0 , potom a=2^x+2^y+2^z
2,1,0 => a=7
3,1,0 => a=11
3,2,0 => a=13
3,2,1 => a=14
4,1,0 => a=19
atd...

Re: Prepis do c++

Odeslat příspěvekNapsal: 4. 4. 2009 20:16
od wizpal
mariank píše:Namiesto a!=0 som mal len a=0
Preto mi to neslo.

Dik.

A kdyby si uměl anglicky tak i víš proč...

Re: Prepis do c++

Odeslat příspěvekNapsal: 5. 4. 2009 14:01
od aberez11
c) ak su to cele cisla tak najmensi vstup pre 4 iteracie je -15 nie? :-) (sa len pytam :-) )

Re: Prepis do c++

Odeslat příspěvekNapsal: 5. 4. 2009 14:50
od kozzi11
wizpal píše:
mariank píše:Namiesto a!=0 som mal len a=0
Preto mi to neslo.

Dik.

A kdyby si uměl anglicky tak i víš proč...

No i kdyby uměl anglicky, tak zrovna tady by mu to moc pomoct nemuselo. jelikoz until se dá přeložit i jako dokud. Ale v pocitacove terminologii je to brano jako než.