Pascal уровень c. ввести натуральное число и определить, верно ли, что в его записи есть две одинаковые цифры (не обязательно стоящие рядом). пример: введите натуральное число: 12342 да. пример: введите натуральное число: 12345 нет. проверьте программу,не работает почему-то program nn; var n,a,b,k,s: integer; begin writeln('введите натуральное число'); readln(n); k: =0; n: =s; while (n> 0) do begin a: =n mod 10; while (n> 0) do begin b: =n mod 100 div 10; if (a=b) then begin k: =k+1; end; n: =n div 10; end; if (k> 0) then writeln('да') else n: =s; n: =n-n mod 10; end; if (k> 0) then writeln ('да') else writeln('нет'); end.

пдсеьаомео пдсеьаомео    2   17.09.2019 12:50    23

Ответы
папаочка228 папаочка228  07.10.2020 21:50
В программе алгоритм неверный, так дубликаты не найти.
Поэтому программа в основном переделана.

var
  n:integer;
  a:array[0..9] of boolean;
  d,i:byte;
  r:boolean;

begin
  Writeln('Введите натуральное число'); Readln(n);
  for i:=0 to 9 do a[i]:=False;
  r:=False;
  while n>0 do begin
    d:=n mod 10;
    if a[d] then begin
      r:=True;
      break
      end
    else a[d]:=True;
    n:=n div 10
    end;
  if r then Writeln('да')
  else Writeln('нет')
end.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика