diff --git a/Juggling_Algo.(Array_Rotation).cpp b/Juggling_Algo.(Array_Rotation).cpp
new file mode 100644
index 0000000..991a62c
--- /dev/null
+++ b/Juggling_Algo.(Array_Rotation).cpp
@@ -0,0 +1,61 @@
+/* Algorithm */
+// C++ program to rotate an array by 
+// d elements 
+#include <bits/stdc++.h> 
+using namespace std; 
+
+/*Fuction to get gcd of a and b*/
+int gcd(int a, int b) 
+{ 
+	if (b == 0) 
+		return a; 
+
+	else
+		return gcd(b, a % b); 
+} 
+
+/*Function to left rotate arr[] of siz n by d*/
+void leftRotate(int arr[], int d, int n) 
+{ 
+	/* To handle if d >= n */
+	d = d % n; 
+	int g_c_d = gcd(d, n); 
+	for (int i = 0; i < g_c_d; i++) { 
+		/* move i-th values of blocks */
+		int temp = arr[i]; 
+		int j = i; 
+
+		while (1) { 
+			int k = j + d; 
+			if (k >= n) 
+				k = k - n; 
+
+			if (k == i) 
+				break; 
+
+			arr[j] = arr[k]; 
+			j = k; 
+		} 
+		arr[j] = temp; 
+	} 
+} 
+
+// Function to print an array 
+void printArray(int arr[], int size) 
+{ 
+	for (int i = 0; i < size; i++) 
+		cout << arr[i] << " "; 
+} 
+
+/* Driver program to test above functions */
+int main() 
+{ 
+	int arr[] = { 1, 2, 3, 4, 5, 6, 7 }; 
+	int n = sizeof(arr) / sizeof(arr[0]); 
+
+	// Function calling 
+	leftRotate(arr, 2, n); 
+	printArray(arr, n); 
+
+	return 0; 
+}