我必须旋转我估算了n个位置的数组(我也选择了那个数组),我做到了……但是我搞砸了一些东西,我不确定如何解决。如果您在网上看到了一些代码,对不起,我不是那么擅长,所以我用google来帮助自己。
结果应如下所示:
-输入: 15 5 8 19 9 10
n:4
-输出: 8 19 9 10 15 5
-输入: 11 4 12 17 18 7 8 16
n:2
-输出: 8 16 11 4 12 17 18 7
public static class Homework
{
static void RightRotate(int[] arr, int d,int n)
{
for (int i = 0; i < d; i++)
RightRotatebyOne(arr, n);
}
static void RightRotatebyOne(int[] arr, int n)
{
int i, temp = arr[0];
for (i = 0; i < n - 1; i++)
arr[i] = arr[i + 1];
arr[i] = temp;
}
static void printArray(int[] arr, int size)
{
for (int i = 0; i < size; i++)
Console.Write(arr[i] + " ");
}
static void Main(string[] args)
{
var arr = Console.ReadLine().Split().Select(int.Parse).ToArray();
int a = arr.Length;
int n = Convert.ToInt32(Console.ReadLine());
RightRotate(arr, n, a);
printArray(arr, a);
}
}
}
编辑:我不知道它是否相同。我只是不知道该怎么做。