Увеличение цифры в серии из массива - 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); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д