1

Тема: Потрібно написати програму, не можу розібратись з чого почати

Для довільного цілого числа знайти довжину самої довгої послідовності чисел, що повторюються підряд. Наприклад 72224228 результат дорівнює 3

2

Re: Потрібно написати програму, не можу розібратись з чого почати

Послідовності цифр, ви хотіли сказати?
Просто розглядайте те, що введене, не як число, а як стрічку, а далі - практично звичайний пошук максимуму.

Подякували: P.Y., leofun012

3 Востаннє редагувалося ur_naz (19.12.2019 19:45:15)

Re: Потрібно написати програму, не можу розібратись з чого почати

почни з класу програми, всередині напиши метод, що розділить число на 10 в циклі і підрахує довжини послідовності чисел
варіант з рядком буде набагато довшим

Подякували: P.Y.1

4 Востаннє редагувалося P.Y. (19.12.2019 20:31:05)

Re: Потрібно написати програму, не можу розібратись з чого почати

Можна робити, як радить ur_naz (у кожній ітерації циклу, щоб отримати цифру числа n, обчислюємо n%10, після чого ділимо n на 10, цикл повторюється, доки n не стане нулем. В цьому ж циклі треба порівняти цифру в цій ітерації циклу з цифрою в попередній, і якщо збігається, збільшити лічильник повторень, якщо ні — скинути лічильник. Потім, у цьому ж циклі треба перевіряти, чи змогла ця цифра побити рекорд повторів, і якщо змогла, записати цифру та її кількість повторів як новий рекорд). Або ж можна зробити так, як радить koala — працювати з послідовністю цифр як з рядком (механізм визначення найдовшої послідовності той же, але замість ділення й модуля просто перебираємо символи рядка, доки не дійдемо до першої нецифри чи кінця рядка). Обрати перший чи другий варіант — залежить від того, в якій формі було задано послідовність цифр. Якщо в вигляді цілого числа, то перетворювати його на рядок — додаткова дія, без якої можна обійтися. Хоча, з іншого боку, якщо послідовність цифр вводиться як текстовий рядок, то перетворювати рядок на число — також додаткова дія, без якої можна обійтись.

Подякували: ping, leofun01, HetmanNet3