1*2*2+1=5
((1*2*2+1)*2*2+1+1+1+1+1)*2=50
((1*2*2+1)*2*2+1+1+1+1)*2*2+1+1+1=99
<h2>Ошибки</h2>
var p,i,x,count: integer;
begin
count := 0;
<u>p := </u><em><u>0 </u></em><u>;
</u>
for i := 1 to 4 do begin
read (x);
if x >= 0 then begin
p := p*x;
count := count+1
end
end;
if count > 0 then begin
<u>writeln(</u><em><u>х </u></em><u>);
</u>
writeln(p);
end
else
writeln('NO')
<u>end </u>
<u />
- Переменная p в начале равняется нулю. В эту переменную будет записываться общее произведение неотрицательных чисел, умножая p на каждое неотрицательное число, но при умножении любого числа на 0 произведение будет 0, поэтому нужно в начале присвоить ей единицу
- В конце выводится последнее введённое число, а нужно вывести количество
- После end не стоит точка
<h3>Правильный вариант программы</h3>
var p,i,x,count: integer;
begin
count := 0;
p := 1;
for i := 1 to 4 do begin
read (x);
if x >= 0 then begin
p := p*x;
count := count+1
end
end;
if count > 0 then begin
writeln(count);
writeln(p);
end
else
writeln('NO')
end.
Последний невозможно перевести, так как число записано неверно, число в 7 СС может состоять из цифр от 0 до 7(а там есть 8)
Полное решение не писал, так как много.
В интернете посмотрите тему "Перевод из одной Системы Счисления в другую"