Дано натуральное число: *найти произведение его цифр *верно ли, что в данном числе нет данной цифры А, А ввод. с клавиатуры В паскале
Answers & Comments
SanyaClaus
Var x, temp, p, a, original: integer; found: boolean; begin found:=false; //переменная примет значение "истина" тогда, когда число А будет найдено в цифрах первого числа writeln('Введите натуральное число"); Readln(original); Writeln('Введите число A'); Readln(a); x:=original; p:=1; //будет хранить произведение цифр числа(если приравнять нулю, то произведение всегда будет равно нулю) while x>0 do //пока X болльше нуля begin temp:=x mod 10; //заносим последнюю цифру числа X в переменную temp if temp=a then found:=true; //если цифра числа равна A, то помечаем, что нашли ее p:=p*temp; //домножаем произведение на цифру x:=x div 10; //отбрасываем последнюю цифру числа через целочисленное деление end; Writeln('Произведение цифр числа ' + original + ' равно ' + p); if found then writeln('Цифра' + a + ' есть в исходном числе ' + original) else writeln('Цифра ' + a + ' отсутствует в оригинальном числе ' + original) end;
0 votes Thanks 1
mopozko123
var m: array [0..9] of boolean; i,a,p :integer; b : string; begin p:=1; readln(b); {ввод исходного числа} for i:=1 to length(b) do { нахождение произведения всех чисел } begin p := p * StrToInt(b[i]); m[StrToInt(b[i])] := true; {Наполнение массива присутствующих чисел из исходного числа} end;
mopozko123
writeln(p); repeat {проверка на присутствие в произведении} begin m[p mod 10] := true; p:= p div 10; end; until p = 0; readln(a);{Ввод искомого числа} if m[a] then writeln('Данное число присутствует' ) else writeln('Данное число отсутствует'); end.
Answers & Comments
found: boolean;
begin
found:=false; //переменная примет значение "истина" тогда, когда число А будет найдено в цифрах первого числа
writeln('Введите натуральное число");
Readln(original);
Writeln('Введите число A');
Readln(a);
x:=original;
p:=1; //будет хранить произведение цифр числа(если приравнять нулю, то произведение всегда будет равно нулю)
while x>0 do //пока X болльше нуля
begin
temp:=x mod 10; //заносим последнюю цифру числа X в переменную temp
if temp=a then found:=true; //если цифра числа равна A, то помечаем, что нашли ее
p:=p*temp; //домножаем произведение на цифру
x:=x div 10; //отбрасываем последнюю цифру числа через целочисленное деление
end;
Writeln('Произведение цифр числа ' + original + ' равно ' + p);
if found then writeln('Цифра' + a + ' есть в исходном числе ' + original)
else writeln('Цифра ' + a + ' отсутствует в оригинальном числе ' + original)
end;
m: array [0..9] of boolean;
i,a,p :integer;
b : string;
begin
p:=1;
readln(b); {ввод исходного числа}
for i:=1 to length(b) do { нахождение произведения всех чисел }
begin
p := p * StrToInt(b[i]);
m[StrToInt(b[i])] := true; {Наполнение массива присутствующих чисел из исходного числа}
end;
repeat {проверка на присутствие в произведении}
begin
m[p mod 10] := true;
p:= p div 10;
end;
until p = 0;
readln(a);{Ввод искомого числа}
if m[a] then writeln('Данное число присутствует' )
else writeln('Данное число отсутствует');
end.