Задан линейный массив. Осуществить в нем сдвиги по следующему правилу: циклически сдвинуть на с элементов влево. Число с вводится — C#(Си шарп)

Вариант 1

1
2
3
4
5
6
7
8
9
10
11
static void Rotate(Array array, int c)
{
    if (c < 0) throw new ArgumentException(nameof(c));
  
    int n = array.Length;
    c %= n;
  
    Array.Reverse(array);
    Array.Reverse(array, 0, n - c);
    Array.Reverse(array, n - c, c);
}

Вариант 2

1
2
3
4
5
6
7
8
9
10
11
static void Rotate(Array array, int c)
{
    if (c < 0) throw new ArgumentException(nameof(c));
  
    int n = array.Length;
    c %= n;
  
   
    array = array.Skip(n-c).Concat(array.Take(n - c)).ToArray();
 
}

Leave a Comment