Дано натуральное число. Верно ли, что в его десятичной записи есть шесть единиц подряд? - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Ну тут как быть кто нидь че нить подскажите

Решение задачи: «Дано натуральное число. Верно ли, что в его десятичной записи есть шесть единиц подряд?»

textual
Листинг программы
program SixOfOne;
 
var
  n: longint;
  Digit: integer;
  CountOne: integer;
begin
  readln(n);
  n := abs(n);
  CountOne := 0;
  while n <> 0 do
  begin
    Digit := n mod 10;
    n := n div 10;
    if Digit = 1 then
      Inc(CountOne)
    else
      CountOne := 0;
    if CountOne = 6 then
      break;
  end;
  if CountOne = 6 then
    writeln('YES')
  else
    writeln('NO');
end.

Объяснение кода листинга программы

В данном коде на языке Pascal ABC задан вопрос о том, есть ли в десятичной записи данного натурального числа шесть единиц подряд. Для решения этой задачи используется цикл while, который выполняется до тех пор, пока значение переменной n не станет равным нулю. Внутри цикла происходит следующее:

  • Переменная Digit инициализируется остатком от деления n на 10. Это позволяет получить последнюю цифру числа.
  • Затем значение n делится на 10, чтобы получить следующую цифру числа.
  • Если значение Digit равно 1, то переменная CountOne увеличивается на единицу. Это происходит шесть раз, если в числе шесть единиц подряд.
  • Если значение Digit не равно 1, то переменная CountOne сбрасывается в ноль.
  • После выполнения всех операций с Digit и n, происходит проверка значения переменной CountOne. Если оно равно 6, то выводится сообщение 'YES', иначе выводится сообщение 'NO'. Таким образом, данный код проверяет наличие шести единиц подряд в десятичной записи данного натурального числа и выводит соответствующее сообщение.

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы