// 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 Нет одинаковых цифр
// PascalABC.NET 3.1, сборка 1172 от 19.02.2016 begin var s:=ReadlnString('Введите двухзначное 16-ричное число'); var mH:array['A'..'F'] of integer:=(10,11,12,13,14,15); if s.Length=1 then s:='0'+s; var c:=s.ToCharArray; var n:=0; for var i:=0 to 1 do case c[i] of '0'..'9':n:=16*n+StrToInt(c[i]); 'A'..'F':n:=16*n+mH[c[i]]; else begin Writeln('Недопустимый символ: ',c[i]); Exit end end; Writeln('Десятичный эквивалент: ',n) end.
Тестовое решение: Введите двухзначное 16-ричное число 3A Десятичный эквивалент: 58
можно до конца ?