Увеличение цифры в серии из массива - C#
Формулировка задачи:
Дан целочисленный массив размера N. Преобразовать массив, уменьшив каждую его серию на один элемент. Серия - это группа подряд идущих одинаковых элементов, длина серии — количество этих элементов (длина серии может быть равна 1).
Вопрос: Не понятен,до конца алгоритм и логика задачи.
Начал так.
Предполагал,что j - номер последней цифры в серии,к - кол-во серий,но нужно оно тут или нет,так и не определился.
int i, N,k,j;
Console.Write("Введите кол-во элементов в массиве ");// Вводим кол-во элементов
N = Convert.ToInt32(Console.ReadLine());
int[] A = new int[N]; //массив А
int[] B = new int[N]; //массив Б
j = 0; k = 0;
for (i = 0; i < A.Length; i++)
{
Console.Write("A[{0}] ", i);
A[i] = Convert.ToInt32(Console.ReadLine()); //ввод последовательности
}
Console.WriteLine();
for (i = 1; i < N; i++ )
{
if (A[i] == A[i - 1]) { j = i; k = 1; } // проверка наличии серии
}Решение задачи: «Увеличение цифры в серии из массива»
textual
Листинг программы
using System;
class Program
{
static void Main()
{
int i = 1,n=0;
Console.Write("длина массива : ");
int[] arr = new int[int.Parse(Console.ReadLine())];
Console.WriteLine("ввод элементов : ");
arr[0] = int.Parse(Console.ReadLine());
bool once = true;
for (int j = 1; j < arr.Length;j++)
{
n = int.Parse(Console.ReadLine());
if (arr[i - 1] == n && once)
{
once = false;
continue;
}
arr[i++] = n;
if (arr[i] != arr[i - 1]) once = true;
}
Console.WriteLine("после изменений : ");
for (int j = 0; j < i; j++) Console.Write(arr[j]+" ");
Console.WriteLine();
Console.ReadKey(true);
}
}