Замена элементов массива по условию встречи элементов в нем - 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
Листинг программы
- using System.Collections.Generic;
- class Program
- {
- static void Main()
- {
- var ruleset = new Dictionary<int, Dictionary<int, int>>
- {
- [100] = new Dictionary<int, int>
- {
- [2] = 10,
- [3] = 15,
- [12] = 16
- },
- [200] = new Dictionary<int, int>
- {
- [2] = 7,
- [3] = 27,
- [12] = 65
- }
- };
- 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 };
- int current = 0;
- for (int i = 0; i < arr.Length; i++)
- {
- int num = arr[i];
- if (num == 100 || num == 200)
- current = num;
- else if (ruleset[current].TryGetValue(num, out num))
- arr[i] = num;
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д