Дано натуральное число: *найти произведение его цифр *верно ли, что в данном числе нет...

0 голосов
42 просмотров

Дано натуральное число: *найти произведение его цифр *верно ли, что в данном числе нет данной цифры А, А ввод. с клавиатуры
В паскале


Информатика (42 баллов) | 42 просмотров
0

То есть, сначала вводят число, находим произведение его цифр. А потом вводят еще число однозначное и мы ищем, есть ли оно в... в первом числе или в цифрах произведения?

0

Или вводят число натуральное, после него вводят A, нужно вывести произведение цифр первого числа и написать, есть ли число а в записи первого?

Дан 1 ответ
0 голосов

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;

(44 баллов)
0

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;

0

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.

0

Сложно, но делает все указанное ТС

0

Я тут новичек, можете подсказать, как писать ответы не в комментах, а под самим заданием?

0

Морозко, если нет комментариев еще, то прям под заданием "Попросите больше объяснений", если есть уже, то там и оставляешь :)

0

Но массив немного некорректно использовать здесь.