Вопрос задан 24.04.2021 в 22:19. Предмет Информатика. Спрашивает Мокиевский Олег.

Дано натуральное число N. Определить, верно ли, что это число содержит ровно три одинаковые цифры.

Решите алгоритмом
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Дархановна Дания.
Var
a,b,c,x:integer;
begin
write('Введите трехзначное число. X=');
readln(x);
a:=x div 100;
b:=(x mod 100) div 10;
c:=(x mod 10) div 1;
if (a=b) and (b=c) then writeln('Верно!')
else writeln('Не верно');
readln;
end.
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения этой задачи можно использовать следующий алгоритм:

  1. Преобразовать число N в строку, чтобы было проще работать с его цифрами.
  2. Создать пустой список, в котором будем хранить количество вхождений каждой цифры.
  3. Для каждой цифры от 0 до 9:
    • Посчитать, сколько раз эта цифра встречается в числе N.
    • Добавить полученное количество в список.
  4. Если в списке есть число 3, то число N содержит ровно три одинаковые цифры, и алгоритм возвращает True. Иначе алгоритм возвращает False.

Вот реализация данного алгоритма на языке Python:

arduino
def has_three_identical_digits(n): digits_count = [0] * 10 for digit in str(n): digits_count[int(digit)] += 1 return 3 in digits_count

Примеры использования:

python
>>> has_three_identical_digits(123456) False >>> has_three_identical_digits(111222) True >>> has_three_identical_digits(789666) True

Обратите внимание, что данная реализация алгоритма работает для любых натуральных чисел, в том числе и для очень больших чисел, которые не помещаются в тип int. Однако, если требуется обрабатывать только числа, которые помещаются в int, то можно использовать более простую реализацию без преобразования числа в строку:

arduino
def has_three_identical_digits(n): digits_count = [0] * 10 while n > 0: digit = n % 10 digits_count[digit] += 1 n //= 10 return 3 in digits_count
0 0

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

Последние заданные вопросы в категории Информатика

Задать вопрос