Работа 3.5 Упр.8 Задание 2 ГДЗ Семакин 10 класс (Информатика)
Рассмотрим вариант решения задания из учебника Семакин, Хеннер, Шеина 10 класс, Бином: 8. Найти все натуральные n-значные числа, цифры в которых образуют строго возрастающую последовательность (например, 1234, 5789). *Цитирирование задания со ссылкой на учебник производится исключительно в учебных целях для лучшего понимания разбора решения задания. 10 semakin10 pract/3-5/zad2/8 98
Нужно вывести все натуральные $$n$$-значные числа, у которых каждая следующая цифра больше предыдущей. Для этого удобно:
- перебрать все числа нужной длины;
- проверять каждое число функцией, которая сравнивает соседние цифры справа налево;
- если цифры образуют строго возрастающую последовательность, вывести число.
Проверка строгого возрастания выполняется так: берём последнюю цифру $$c$$, затем по очереди сравниваем её с предыдущей. Если для какой-то пары не выполняется условие $$\text{предыдущая цифра} < \text{следующая цифра}$$, число не подходит.
program Zadacha;
var n, i, k, a: integer;function Vozr(n: integer): boolean;
var m, c: integer;
f: boolean;
begin
c := n mod 10;
m := n div 10;
f := true;
while (m > 0) and f do
begin
if m mod 10 >= c then f := false
else
begin
c := m mod 10;
m := m div 10;
end;
end;
Vozr := f;
end;function IsMax(n: integer): boolean;
var m, a, c: integer;
f: boolean;
begin
f := false;
a := n mod 10;
if a = 9 then
begin
f := true;
m := n div 10;
while (m > 0) and f do
begin
c := m mod 10;
if c + 1 <> a then f := false
else m := m div 10;
a := c;
end;
end;
IsMax := f;
end;begin
readln(n);
i := 1;
repeat
if Vozr(i) then write(i, ‘ ‘);
i := i + 1;
until IsMax(i — 1);
end.
Так как строго возрастающее число не может содержать более 9 цифр, перебор заканчивается на числе $$123456789$$.
Ответ
Программа выводит все натуральные $$n$$-значные числа, цифры которых образуют строго возрастающую последовательность.