Помогите решить задачу. Циклы C#
- Сдвинуть циклически значения разрядов целого числа на заданное число позиций в заданном направлении. Например, сдвиг на две позиции влево: Исходное число: 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);