Дано натуральное число. Верно ли, что в его десятичной записи есть шесть единиц подряд? - 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'. Таким образом, данный код проверяет наличие шести единиц подряд в десятичной записи данного натурального числа и выводит соответствующее сообщение.