Найти одинаковые цифры двух чисел
С клавиатуры вводятся два натуральных числа. Определить цифры, входящие в запись как первого так и второго числа.
В цикле пока одно из чисел полностью не сократится будем выполнять следующее:
- Сохраним последнюю цифру первого (a) числа в переменной d.
- После этого сразу же удалим эту цифру из числа.
- Присвоим переменной c второе введенное число (b). Значение c будем изменять. Значение b должно сохраниться для последующих проверок совпадающих цифр.
- Во внутреннем цикле перед удалением последней цифры числа c будем проверять совпадает ли она с цифрой d. Если это так, то выведем ее на экран и прервем внутренний цикл.
Таким образом, каждая цифра первого числа будет сравниваться со всеми цифрами второго числа.
var
a, b, c: longint;
d: byte;
begin
readln(a, b);
while a > 0 do begin
d := a mod 10;
a := a div 10;
c := b;
while c > 0 do begin
if c mod 10 = d then begin
write(d, ' ');
break;
end;
c := c div 10;
end;
end;
writeln;
end.
Пример выполнения кода:
564 8954
4 5
Данная программа имеет следующую особенность. Если в первом числе есть одинаковые цифры, каждая из них будет сравниваться с цифрами второго числа, и два раза найдется совпадение. Пример выполнения с побочным эффектом:
54436 341
3 4 4