Работа 3.5 Упр.7 Задание 2 ГДЗ Семакин 10 класс (Информатика)
Рассмотрим вариант решения задания из учебника Семакин, Хеннер, Шеина 10 класс, Бином: 7. На отрезке [100, N] (2^10 < N < 2^31) найти количество чисел, составленных из цифр а, b, с. *Цитирирование задания со ссылкой на учебник производится исключительно в учебных целях для лучшего понимания разбора решения задания. 10 semakin10 pract/3-5/zad2/7 98
Функция F(a,b,c,n) просматривает все числа на отрезке $$[100; n]$$ и проверяет каждое из них.
Для текущего числа i:
- счётчики k1, k2, k3, k4 обнуляются;
- число разбирается по цифрам;
- если цифра равна $$a$$, увеличивается k1;
- если цифра равна $$b$$, увеличивается k2;
- если цифра равна $$c$$, увеличивается k3;
- если цифра не равна $$a$$, $$b$$ и $$c$$, увеличивается k4.
После просмотра всех цифр число подходит, если:
$$k1>0 \land k2>0 \land k3>0 \land k4=0$$
То есть в записи числа есть все три цифры $$a$$, $$b$$, $$c$$, и нет никаких других цифр.
Если условие выполнено, счётчик p увеличивается на 1.
var a,b,c,n: integer;
function F(a,b,c,n: integer): byte;
var i,k1,k2,k3,k4,p,m: integer;
begin
for i := 100 to n do
begin
m := i;
k1 := 0; k2 := 0; k3 := 0; k4 := 0;
while m > 0 do
begin
if m mod 10 = a then inc(k1)
else if m mod 10 = b then inc(k2)
else if m mod 10 = c then inc(k3)
else inc(k4);
m := m div 10;
end;
if (k1 > 0) and (k2 > 0) and (k3 > 0) and (k4 = 0) then
begin
inc(p);
write(i:5);
end;
end;
writeln;
F := p;
end;
begin
write(‘Введите a,b,c: ‘); readln(a,b,c);
write(‘Введите n: ‘); readln(n);
writeln(‘Таких чисел = ‘, F(a,b,c,n));
end.
Ответ: программа перебирает все числа от 100 до $$n$$ и считает те, которые состоят только из цифр $$a$$, $$b$$ и $$c$$, причём каждая из них встречается хотя бы один раз.