# Kotlin Program to Cyclically Rotate Array by One

Write a Kotlin Program to cyclically rotate array clockwise by one.

Suppose you have an array

```val arr = intArrayOf(10,21,32,42,51)
```

If we want to cyclically rotate that array clockwise by one, output should be something like –

```21,32,42,51,10
```

We can do so as below –

• Assume array is of size n.
• At first, store last element of array in a variable temp.
• Then, move all elements to right by one position i.e. move item at n-2th position to n-1th position, item at n-3th position to n-2th position etc. That means, item at ith position will shift to i+1th position.
• After moving all elements to it’s subsequent position, replace first item with value stored in variable temp.

Kotlin program to cyclically rotate item by one –

```fun main() {

val arr = intArrayOf(10, 21, 32, 42, 51)

println("Given array: ")
for(element in arr) {
print("\$element ")
}

// Store last element in variable temp
val temp = arr[arr.size - 1]

// Move all element at ith position to (i+1)th position
for (curIndex in arr.lastIndex downTo 1) {
arr[curIndex] = arr[curIndex-1]
}

// Store last element at 0th position
arr[0] = temp

println("\nElements after cyclically rotating array by one: ")
for(element in arr) {
print("\$element ")
}
}
```

When you run above program, you will get below output –

```Given array:
10 21 32 42 51
Elements after cyclically rotating array by one:
51 10 21 32 42
```

Time complexity: O(n), We are iterating through all the elements in array.

That’s how we can write kotlin program to cyclically rotate array by one with example.