Помогите решить задачу. Циклы C#

  1. Сдвинуть циклически значения разрядов целого числа на заданное число позиций в заданном направлении. Например, сдвиг на две позиции влево: Исходное число: 123456 Результат: 345612

Получается только такая конкретная программа.

int x;
int y;
int z;
Console.WriteLine("Введите число");
x = Convert.ToInt32(Console.ReadLine());
while (x>0)
{
    y = x % 10000;
    z = x / 10000;

    Console.WriteLine("{0}{1}", y, z);
    break;
}

А нужно, чтобы при введении конкретного числа, число сдвигалось на введенную позицию, то есть это не обязательно на две позиции влево. Например, человек может ввести значение 3, и число должно сдвинуться на три позиции влево.


Ответы (1 шт):

Автор решения: MBo
    Console.WriteLine("Введите число");
    int x = Convert.ToInt32(Console.ReadLine());
    Console.WriteLine("Введите сдвиг");
    int s = Convert.ToInt32(Console.ReadLine());
    int t = x;
    int m = 1;
    int n = 1;
    while (t > 0) {
       if (s > 0)
         m *= 10;
       else
         n *= 10;
       t /= 10;
       s--;
    }
    t = (x % n) * m + (x / n);
    Console.WriteLine("{0}", t);
→ Ссылка