Паскаль!!!!! Введите натуральное многозначеое число и определите, верно ли, что в его...

0 голосов
34 просмотров

Паскаль!!!!!
Введите натуральное многозначеое число и определите, верно ли, что в его записи есть две одинаковые цифры, не обязательно стоящие рядом.
Массивы еще не проходили, поэтому циклы и условия.
Помогите, пожалуйста!!!!!!!!!!!!!


Информатика (30 баллов) | 34 просмотров
0

А строки проходили?

0

Да.

Дан 1 ответ
0 голосов
Правильный ответ

Суть в том, что переводишь число в строковый формат и далее работаешь с ним как с одномерным массивом (чем и является по сути строка).
Во внешнем цикле выбирается по порядку от 1 до (длина строки -1, т.е. до предпоследнего) цифра числа. Во внутреннем цикле эта цифра сравнивается с каждой последующей по-порядку до тех пор пока не найдется одинаковая. Если нашлась, то выход из цикла. Из внешнего цикла так же предусмотрен выход если нашлась пара равных цифр.
program z1;
var n: int64; l: integer; s: string; i, j: byte; x: boolean;
begin
   writeln ('введите число');
   readln (n);
   Str(n,s);
   l:=length(s);
   x:=false;
     for  i:=1 to l-1 do begin
        for  j:=i+1 to l do begin
          if s[i]=s[j] then begin x:=true; break; end;
        end;
      if x=true then break;
     end;
   writeln (x);  
end.

(3.9k баллов)