pascal - prośba o pomoc
mam kod na obliczanie silni
uses crt;
var
i,x: Integer;
w : Longint;
begin
Writeln('prosze podac liczbe');
Write('Podaj liczbe x: ');
Read(x);
W:=1;
for i:=1 to x do W:=W*i;
Writeln('Silnia liczby ',x, ' wynosi ', W);
end.
no i potrzebuję dalszą część kodu, która zwróci nam liczbę 0 silni. Czy mógłby mi ktoś pomoc? męczę się od wczoraj i nie mogę sobie poradzić
A to, co teraz jest, nie działa? Wygląda ok.
Dla przypomnienia: 0! = 1 ;)
działa działa lecz nie udaje mi się napisanie do tego kodu, który wyświetli jeszcze ilość zer w silni
Aaaa. Trzeba było tak od razu (ot - efekty pisania cyfr zamiast odmienionego słowa) ;)
Spróbuj zliczać w pętli. Pascalopodobny pseudokod:
licznik := 0;
while W mod 10 = 0 do
begin
W := W div 10;
licznik := licznik + 1;
end
write('Liczba zer: ', licznik);
EDIT: Chyba że chodzi o WSZYSTKIE zera tej liczby, a nie tylko końcowe. Jeśli tak, to zmień pętlę while W mod 10 = 0 na repeat until W = 0 a w środku if W mod 10 = 0 then licznik := licznik + 1
aaa no sorki:)
czyli cały kod wygląda tak
uses crt;
var
i,x: Integer;
w : Longint;
begin
Writeln('prosze podac liczbe');
Write('Podaj liczbe x: ');
Read(x);
W:=1;
for i:=1 to x do W:=W*i;
Writeln('Silnia liczby ',x, ' wynosi ', W);
licznik := 0;
repeat intil w = 0
begin
if W mod 10 = 0 then
licznik := licznik + 1
W := W div 10;
licznik := licznik + 1;
end;
write('Liczba zer: ', licznik);
end.
tak czy w złym miejscu wkleiłem:)?