Выбрать рулон содержащий максимальное количество счастливых билетов - Pascal
Формулировка задачи:
Напишите программу, которая поможет выбрать рулон содержащий максимальное количество счастливых билетов (гарантируется, рулон с максимальным кол-вом счастливых билетов только один)
Входные данные
Первая строка входного файла INPUt.TXT содержит натуральное число N (1<=N<=10)-количество рулонов с билетами. Вторая строка содержит натуральное число K (10<=K<=10000)-количество билетов в одном рулоне. Треться строка содержит N целых чисел Xi ( 100000<=Xi<=989999)-номер первого билета в i-ом рулонеВыходные файлы
В выходной файл OUTPUT.TXT выведите номер рулона, количество счастливых билетов в котором максимально.Решение задачи: «Выбрать рулон содержащий максимальное количество счастливых билетов»
textual
Листинг программы
var i,j,k,n,l,x:dword; begin read(n,k); for n:=1 to n do begin read(i); j:=0; for i:=i to i+k-1 do if i div 1000 mod 10+i div 1000 mod 100 div 10+i div 1000 div 100= i mod 10+i mod 100 div 10+i mod 1000 div 100 then j:=j+1; if x<j then begin x:=j;l:=n;end; end; writeln(l); end.
Объяснение кода листинга программы
- Объявление переменных:
i, j, k, n, l, x
- целочисленные переменные типа dword.
- Ввод значений переменных:
n
- количество рулонов билетовk
- количество билетов в одном рулоне
- Цикл ввода билетов:
- Читается значение одного билета
i
- Переменная
j
устанавливается в 0 для подсчета количества счастливых билетов в рулоне
- Читается значение одного билета
- Подсчет количества счастливых билетов:
- Для каждого билета в рулоне (от i до i+k-1) вычисляется сумма цифр слева от разделителя тысяч, сотен и десятков: i div 1000 mod 10, i div 1000 mod 100 div 10, i div 1000 div 100.
- Затем вычисляется сумма цифр справа от разделителя: i mod 10, i mod 100 div 10, i mod 1000 div 100.
- Если сумма первых трех цифр равна сумме вторых трех цифр, увеличиваем переменную
j
на 1.
- Сравнение количества счастливых билетов в рулонах:
- Если количество счастливых билетов в текущем рулоне
j
больше, чем значение переменнойx
, то обновляемx
иl
соответственно.
- Если количество счастливых билетов в текущем рулоне
- Вывод номера рулона с максимальным количеством счастливых билетов:
- Выводится номер рулона
l
, содержащего максимальное количество счастливых билетов.
- Выводится номер рулона
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д