Работа 3.5 Упр.5 Задание 2 ГДЗ Семакин 10 класс (Информатика)
Рассмотрим вариант решения задания из учебника Семакин, Хеннер, Шеина 10 класс, Бином: 5. Имеется часть катушки с автобусными билетами. Номер билета шестизначный. Составить программу, определяющую количество счастливых билетов на катушке, если меньший номер билета — N, больший — М (билет является счастливым, если сумма первых трех его цифр равна сумме последних трех). *Цитирирование задания со ссылкой на учебник производится исключительно в учебных целях для лучшего понимания разбора решения задания. 10 semakin10 pract/3-5/zad2/5 98
Нужно перебрать все номера билетов от $$N$$ до $$M$$ и для каждого шестизначного номера проверить условие счастливого билета:
$$d_1+d_2+d_3=d_4+d_5+d_6$$
где $$d_1, d_2, d_3$$ — первые три цифры номера, а $$d_4, d_5, d_6$$ — последние три.
Чтобы выделить цифры числа, используем деление нацело и остаток от деления:
- $$d_6 = i \div 100000$$
- $$d_5 = (i \bmod 100000) \div 10000$$
- $$d_4 = (i \bmod 10000) \div 1000$$
- $$d_3 = (i \bmod 1000) \div 100$$
- $$d_2 = (i \bmod 100) \div 10$$
- $$d_1 = i \bmod 10$$
Если суммы равны, номер билета выводится, а счётчик счастливых билетов увеличивается.
var n, m, i, k: integer;
var d1, d2, d3, d4, d5, d6: integer;
begin
Readln(n, m);
k := 0;
for i := n to m do
begin
d6 := i div 100000;
d5 := (i mod 100000) div 10000;
d4 := (i mod 10000) div 1000;
d3 := (i mod 1000) div 100;
d2 := (i mod 100) div 10;
d1 := i mod 10;
if (d1 + d2 + d3) = (d4 + d5 + d6) then
begin
Write(d6, d5, d4, d3, d2, d1, ‘ ‘);
k := k + 1;
end;
end;
Writeln;
Writeln(k);
end.
Ответ
Программа выводит все счастливые билеты на отрезке от $$N$$ до $$M$$ и их количество.