Формировать полное число в N знаков совсем не нужно.
Т. к. для проверки достаточно условия, что не идут подряд 3 одинаковые цифры 555 или 999,
достаточно помнить только 3 последние цифры, а большие третьего порядка - отбрасывать. (Нам же не сказано вывести такие числа! )
Таким образом организуем рекурсию, где к полученному на предыдущем шаге числу прибавляем в конец 5 или 9 (т. е. число * 10 и прибавить 5 или 9).
Если число начинает превышать трёх знаков, то отбрасываем первые знаки (остаток от деления на 1000).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
var
N : Byte;
K : Integer;
procedure Next(Cifr, C : Byte; S : Word);
begin
S := S * 10 + C;
// от числа нам нужны только последние 3 цифры
if S > 1000 then
S := S mod 1000;
if S <> 555 then // нет трёх подрят 5
if S <> 999 then // нет трёх подряд 9
if Cifr + 1 = N then // достигли размеров числа = N
Inc(K) // Увеличим счётчик
else
begin // формируем новые числа прибавлением 5 или 9
Next(Cifr + 1, 5, S); // Прибавим 5
Next(Cifr + 1, 9, S); // Прибавим 9
end;
end;
begin
Write('Введите N='); ReadLn(N);
K := 0;
Next(0, 5, 0); // Начинаем с прибавления 5
Next(0, 9, 0); // Начинаем с прибавления 9
WriteLn('Возможных чисел =', K);
end.
Другие языки программирования и технологии
Сколько N-значных чисел можно составить, используя цифры 5 и 9, в которых три одинаковые цифры не стоят рядом? Pascal
Похожие вопросы
- напишите пожалуйста все возможные 5-ти значные числа, состоящие из цифр от 0 до 9
- Помогите написать программу. Дано натуральное 5-значное число n.Определить равны ли сумма и произведение его цифр.
- дано натуральное 5 значное число n.Сколько раз в данном числе встречаются цифры 4 или 8?
- Pascal: Дано 3-значное число N.Определить,являются ли числа,из которых оно состоит членами геометрической прогрессии
- Помогите написать программу в Assembler НАЙТИ СУММУ ЦИФР 3-ЗНАЧНОГО ЧИСЛА И ПРОИЗВЕДЕНИЕ 4-ЗНАЧНОГО ЧИСЛА
- даны натуральные числа n и m(0 <=m <= 9)дополнить запись числа n в начале и в конце цифрой m
- Подсчитать количество 3-значных чисел,сумма цифр которых меньше либо равна 24
- Дано натуральное число n. Найти и вывести все числа в интервале от 1 до n -1, у которых произведение всех цифр совпадает
- Существует ли программа которая выводит допустим все 4-х значные числа или 5 значные?
- <<ПОМОГИТЕ! НАПИСАТЬ ПРОГРАММУ НА СИ ИЛИ ПАСКАЛЕ КОТОРАЯ ВЫВОДИТЬ СУММУ ЦИФР ЧИСЛА ОТ 1 ДО N