Предмет: Информатика,
автор: vanzik
Напишите программу, которая определяет, верно ли, что введённое число содержит по крайней мере две одинаковых цифры, возможно, не стоящие рядом
Ответы
Автор ответа:
0
var
s: string;
i, j, n: integer;
c: char;
flag: boolean;
begin
Write('Введите произвольное число: '); Readln(s);
flag := false;
n := length(s);
i := 1;
while (i <= n) and (not flag) do
begin
c := s[i];
j := i + 1;
while (j <= n) and (not flag) do
if s[j] = c then flag := true else j := j + 1;
if (not flag) then i := i + 1
end;
if flag then Writeln('Символ "', c, '" встречается больше одного раза')
else Writeln('Все символы уникальны')
end.
Тестовое решение:
Введите произвольное число: 16379068
Символ "6" встречается больше одного раза
s: string;
i, j, n: integer;
c: char;
flag: boolean;
begin
Write('Введите произвольное число: '); Readln(s);
flag := false;
n := length(s);
i := 1;
while (i <= n) and (not flag) do
begin
c := s[i];
j := i + 1;
while (j <= n) and (not flag) do
if s[j] = c then flag := true else j := j + 1;
if (not flag) then i := i + 1
end;
if flag then Writeln('Символ "', c, '" встречается больше одного раза')
else Writeln('Все символы уникальны')
end.
Тестовое решение:
Введите произвольное число: 16379068
Символ "6" встречается больше одного раза
Автор ответа:
0
Так тут кроме оператора цикла и описание, и присваивание, и условный оператор и ввод-вывод... все, как и у меня - других операторов я тоже не использовал
Автор ответа:
0
И потом, Ваша программа врёт: дайте ей число 213456718 - она пишет, что одинаковых цифр НЕТ
Автор ответа:
0
верно. спасибо
Автор ответа:
0
Но врет она не потому, что неверно написано, а потому что число 213456718 выходит за пределы разрядной сетки, отведенной для integer, а паскаль по этому поводу молчит. Во избежание подобной ошибки я использовал строковое. а не числовое представление числа, поскольку Вы не указали, в каком диапазоне могут находиться вводимые числа. И еще, Вы не указали, что числа должны быть только целыми, на строке можно вводить любые.
Автор ответа:
0
Совет: ответ начинайте писать в форме "В числе xxxxx ..." - тогда будет видно, какое число на самом деле программа обрабатывала.
Похожие вопросы
Предмет: История,
автор: nekrasovasophia2005
Предмет: Алгебра,
автор: Аноним
Предмет: История,
автор: Аноним
Предмет: Обществознание,
автор: Виолетта11111111
Предмет: Биология,
автор: knit175