Замена элементов массива по условию встречи элементов в нем - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день. Имеем последовательность чисел: 100 2 3 65 4 3 12 100 1 1 1 3 200 23 23 43 22 2 2 3 5 100 3 4 200 2 100 8 и т.д. Основное внимание на числа 100 и 200. Первым в массиве будет обязательно 100 или 200. массив может заканчиваться любым числом. Числа между 100 и 200 заменяются по первому правилу: 2 на 10, 3 на 15, 12 на 6. Числа между 200 и 100 заменяются по второму правилу: 2 на 7, 3 на 27, 12 на 65. Заранее спасибо за помощь.

Решение задачи: «Замена элементов массива по условию встречи элементов в нем»

textual
Листинг программы
  1. using System.Collections.Generic;
  2.  
  3.  
  4. class Program
  5. {
  6.     static void Main()
  7.     {
  8.         var ruleset = new Dictionary<int, Dictionary<int, int>>
  9.         {
  10.             [100] = new Dictionary<int, int>
  11.             {
  12.                 [2] = 10,
  13.                 [3] = 15,
  14.                 [12] = 16
  15.             },
  16.             [200] = new Dictionary<int, int>
  17.             {
  18.                 [2] = 7,
  19.                 [3] = 27,
  20.                 [12] = 65
  21.             }
  22.         };
  23.  
  24.         int[] arr = { 100, 2, 3, 65, 4, 3, 12, 100, 1, 1, 1, 3, 200, 23, 23, 43, 22, 2, 2, 3, 5, 100, 3, 4, 200, 2, 100, 8 };
  25.  
  26.         int current = 0;
  27.         for (int i = 0; i < arr.Length; i++)
  28.         {
  29.             int num = arr[i];
  30.             if (num == 100 || num == 200)
  31.                 current = num;
  32.             else if (ruleset[current].TryGetValue(num, out num))
  33.                 arr[i] = num;
  34.         }
  35.     }
  36. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы