mas to napisat v pseudojazyku..ale take ze cele cislo tam vobec nefiguruje
-----------------------------------------------------------------------------------------
xalani helfnite mi s tym
Nechapem celkommarianna napísal:napis vyraz, ktorym zistis ci dane cislo je alebo neni mocnina z dvojky
mas to napisat v pseudojazyku..ale take ze cele cislo tam vobec nefiguruje
-----------------------------------------------------------------------------------------
xalani helfnite mi s tym
var pom, cislo:integer;
JE:boolean;
begin
readln(cislo);
pom:=1;
JE:=FALSE;
while pom<cislo do
begin
pom:=pom*2;
if pom=cislo then JE:=TRUE;
end;
if JE then writeln('Je mocnina.') else writeln('Nie je mocnina.');
end.
Kód: Vybrať všetko
var pom, cislo:integer;
JE:boolean;
begin
readln(cislo);
pom:=1;
JE:=FALSE;
while pom<=sqrt(cislo) do
begin
pom:=pom*2;
if pom=cislo then JE:=TRUE;
end;
if JE then writeln('Je mocnina.') else writeln('Nie je mocnina.');
end.
Jasne, este sa tam daju robit upravy. Napr co ma napadlo:oborpeto napísal:dovolim si zfeefektivnit:)
Kód: Vybrať všetko
var pom, cislo:integer; JE:boolean; begin readln(cislo); pom:=1; JE:=FALSE; while pom<=sqrt(cislo) do begin pom:=pom*2; if pom=cislo then JE:=TRUE; end; if JE then writeln('Je mocnina.') else writeln('Nie je mocnina.'); end.
Kód: Vybrať všetko
var pom, cislo:integer;
JE:boolean;
begin
readln(cislo);
pom:=1;
JE:=FALSE;
while (pom<=sqrt(cislo))or (JE=FALSE) do
begin
pom:=pom*2;
if pom=cislo then JE:=TRUE;
end;
if JE then writeln('Je mocnina.') else writeln('Nie je mocnina.');
end.
Kód: Vybrať všetko
var cislo:integer;
sqrtNum,rozdiel:real;
begin
readln(cislo);
sqrtNum := sqrt(cislo);
rozdiel := sqrtNum - trunc(sqrtNum);
if rozdiel > 0 then
writeln('Nie je mocnina.');
else
writeln('Je mocnina.')
end.
podla tohto napr 128,512,2048... nie su mocninou dvojky .. takze asi to nie je dobry algoritmusIgiPoP napísal:naco pouzivat ciklus ked nieje treba
Kód: Vybrať všetko
var cislo:integer; sqrtNum,rozdiel:real; begin readln(cislo); sqrtNum := sqrt(cislo); rozdiel := sqrtNum - trunc(sqrtNum); if rozdiel > 0 then writeln('Nie je mocnina.'); else writeln('Je mocnina.') end.