Напишите программу на C++, которая сократит полный список номеров бракованных изделий путем замены подряд идущих чисел
Напишите программу на C++, которая сократит полный список номеров бракованных изделий путем замены подряд идущих чисел интервалом. В вашей компании, занимающейся производством компьютерных комплектующих, каждое изделие получает последовательный номер от 1 до N. После проверки в отделе контроля качества, изделие либо продается, либо добавляется в список бракованных изделий и списывается. Однако, иногда список бракованных изделий получается слишком длинным. В этом случае несколько подряд идущих чисел должны быть заменены интервалом, где первое и последнее число указываются через тире.
Магнитный_Пират 12
Хорошо, чтобы решить эту задачу, мы можем использовать следующий алгоритм:1. Начните с создания пустого списка для сохранения сокращенных номеров бракованных изделий.
2. Считайте полный список номеров бракованных изделий.
3. Итерируйтесь по списку и сравните каждое число с предыдущим числом.
4. Если очередное число больше предыдущего на 1, добавьте его во временный интервал.
5. Если очередное число не следует за предыдущим числом последовательно, сохраните текущий интервал в сокращенном списке.
6. Повторяйте шаги 4-5 до конца списка.
7. Выведите сокращенный список номеров бракованных изделий, заменяя последовательные числа интервалами через тире.
Ниже приведена программа на языке C++, реализующая описанный алгоритм:
После запуска программы, вы должны будете ввести количество бракованных изделий и их номера. Затем программа выведет сокращенный список номеров бракованных изделий с использованием интервалов через тире. Например, если введенные номера были 1, 2, 3, 5, 6, 8, 10, 11, то сокращенный список выглядит следующим образом: 1-3 5-6 8 10-11.
Эта программа будет работать для любого количества бракованных изделий и любых номеров. Она эффективно сократит список, заменяя подряд идущие числа интервалами для удобства чтения.