
Вопрос задан 09.02.2020 в 01:08.
Предмет Информатика.
Спрашивает Ялбаков Эжер.
Даны два натуральных числа m и n. Проверить, есть ли в записи числа m цифры, одинаковые с цифрами в
записи числа n. P.S. На языке паскаль.

Ответы на вопрос

Отвечает Анпилогов Матвей.
// PascalABC.NET 3.1, сборка 1172 от 19.02.2016
begin
var m:=ReadInteger('m=').ToString.ToSortedSet;
var n:=ReadInteger('n=').ToString.ToSortedSet;
if m.Intersect(n).Count>0 then Writeln('Есть одинаковые цифры')
else Writeln('Нет одинаковых цифр')
end.
Тестовые решения:
m= 12345
n= 76840
Есть одинаковые цифры
m= 123456
n= 789087
Нет одинаковых цифр
А вот примерно так почему-то заставляют писать эту же задачу в школах:
// PascalABC.NET 3.1, сборка 1172 от 19.02.2016
var
i,m,n:integer;
found:boolean;
sm,sn:string;
begin
Writeln('Введите через пробел два натуральных числа: ');
Read(m,n);
Str(m,sm);
Str(n,sn);
found:=False;
for i:=1 to Length(sm) do
if Pos(sm[i],sn)>0 then begin
found:=True;
break
end;
if found then Writeln('Есть одинаковые цифры')
else Writeln('Нет одинаковых цифр')
end.
Тестовое решение:
Введите через пробел два натуральных числа:
5354353 111211
Нет одинаковых цифр
begin
var m:=ReadInteger('m=').ToString.ToSortedSet;
var n:=ReadInteger('n=').ToString.ToSortedSet;
if m.Intersect(n).Count>0 then Writeln('Есть одинаковые цифры')
else Writeln('Нет одинаковых цифр')
end.
Тестовые решения:
m= 12345
n= 76840
Есть одинаковые цифры
m= 123456
n= 789087
Нет одинаковых цифр
А вот примерно так почему-то заставляют писать эту же задачу в школах:
// PascalABC.NET 3.1, сборка 1172 от 19.02.2016
var
i,m,n:integer;
found:boolean;
sm,sn:string;
begin
Writeln('Введите через пробел два натуральных числа: ');
Read(m,n);
Str(m,sm);
Str(n,sn);
found:=False;
for i:=1 to Length(sm) do
if Pos(sm[i],sn)>0 then begin
found:=True;
break
end;
if found then Writeln('Есть одинаковые цифры')
else Writeln('Нет одинаковых цифр')
end.
Тестовое решение:
Введите через пробел два натуральных числа:
5354353 111211
Нет одинаковых цифр



Отвечает Бутчик Вася.
//Pascal ABC.NET v3.0 сборка 1111
Var
a,b,i,j:integer;
begin
read(a,b);
for i:=1 to length(inttostr(a)) do
for j:=1 to length(inttostr(b)) do
if inttostr(a)[i]=inttostr(b)[j] then
begin;
writeln('Есть');
exit;
end;
writeln('Нет');
end.
Пример ввода:
123
345
Пример вывода:
Есть
Var
a,b,i,j:integer;
begin
read(a,b);
for i:=1 to length(inttostr(a)) do
for j:=1 to length(inttostr(b)) do
if inttostr(a)[i]=inttostr(b)[j] then
begin;
writeln('Есть');
exit;
end;
writeln('Нет');
end.
Пример ввода:
123
345
Пример вывода:
Есть


Топ вопросов за вчера в категории Информатика

Информатика 47

Информатика 33

Информатика 67

Информатика 18

Информатика 25

Информатика 563

Информатика 16
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili