数字可以向左移动=>检查。
仅跟随数组中的第一个数字,其余的消失。现在的例子:
输入数组:1 2 3 4 5 6输入左移次数:3输出:4 5 6 1输出应如何:4 5 6 1 2 3
有人可以帮忙解决这个我找不到的简单解决方案。
var str = Console.ReadLine();
int shift = Convert.ToInt32(Console.ReadLine());
var strArray = str.Split(' ');
var x = strArray[0];
for (var i = 0; i < strArray.Length - shift; i++)
{
strArray[i] = strArray[i + shift];
}
strArray[strArray.Length - shift] = x;
for (var i = 0; i <= strArray.Length - shift; i++)
{
Console.Write(strArray[i] + ' ');
}
您可以使用Linq进行轮班,这是您可以使用的简单方法
public int[] shiftRight(int[] array, int shift)
{
var result = new List<int>();
var toTake = array.Take(shift);
var toSkip = array.Skip(shift);
result.AddRange(toSkip);
result.AddRange(toTake);
return result.ToArray();
}