Вопрос по информатике:
Написать программу, которая находит одинаковые цифры двух чисел. В pascal, желательно через function. Можно чтобы токого не было.Входные данные:466 476. Выходные даныые:6 6.
Заранее спасибо
- 26.03.2018 15:50
- Информатика
- remove_red_eye 18837
- thumb_up 6
Ответы и объяснения 1
Внимание! Если программа не работает, обновите версию!
function Duplicates(a,b:int64):array of char;
begin
var ha:=a.ToString.ToHashSet;
ha.IntersectWith(b.ToString.ToHashSet);
Result:=ha.ToArray
end;
begin
var m,n:int64;
Write('Введите через пробел два натуральных числа: ');
Read(m,n);
var r:=Duplicates(m,n);
if r.Length=0 then Writeln('Нет цифр, встречающихся в обоих числах')
else r.Println(',')
end.
Примеры
Введите через пробел два натуральных числа: 12345 6789067
Нет цифр, встречающихся в обоих числах
Введите через пробел два натуральных числа: 1342103 6748644
4
Реализация без множеств
procedure nToArray(n:int64; a:array of boolean);
begin
for var i:=0 to 9 do a[i]:=False;
if n=0 then a[0]:=True
else
while n>0 do begin
a[n mod 10]:=True;
n:=n div 10
end
end;
function Duplicates(a,b:int64):array of boolean;
begin
var ma:=new boolean[10];
var mb:=new boolean[10];
nToArray(a,ma);
nToArray(b,mb);
Result:=new boolean[10];
for var i:=0 to 9 do
Result[i]:=ma[i] and mb[i]
end;
begin
var m,n:int64;
Write('Введите через пробел два натуральных числа: ');
Read(m,n);
var r:=Duplicates(m,n);
Write('Совпадающие цифры: ');
for var i:=0 to 9 do
if r[i] then Write(i,' ');
Writeln
end.
Пример
Введите через пробел два натуральных числа: 12352423 98789635233
Совпадающие цифры: 2 3 5
- 27.03.2018 07:04
- thumb_up 42
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.