Related Articles

# Place first N natural numbers at indices not equal to their values in an array

• Difficulty Level : Medium
• Last Updated : 04 May, 2021

Given an integer N(N > 1), the task is to arrange all integers from the range [1, N] in an array such that none of the elements are same as the index (1-based indexing) in which they are present in the array.

Examples:

Input: N = 2
Output: 2 1
Explanation: Only possible arrangement of an array of size 2 is 2 1.

Input: N=5
Output: 2 1 5 3 4
Explanation: One possible arrangement of an array of size 5 is 2 1 5 3 4l.

Approach: The simplest idea is to place N at the first index and place the remaining elements [1, N – 1] in the remaining indices.

Below is the implementation of the above approach:

## C++

 `// C++ program for the above approach``#include ``using` `namespace` `std;` `// Function to place first N natural``// numbers in an array such that none``// of the values are equal to its indices``void` `generatepermutation(``int` `N)``{` `  ``// Stores the required array``    ``vector<``int``> answer;` `    ``// Place N at the first position``    ``answer.push_back(N);` `    ``// Iterate the range [1, N)``    ``for` `(``int` `i = 1; i < N; i++)``    ``{``        ``// Append elements to the sequence``        ``answer.push_back(i);``    ``}` `    ``// Pritn the sequence``    ``for``(``int` `i:answer) cout << i << ``" "``;` `}` `// Driver Code``int` `main()``{``  ``int` `N = 4;``  ``generatepermutation(N);` `  ``return` `0;``}` `// This code is contributed by mohit kumar 29.`

## Java

 `// Java program for the above approach``import` `java.util.*;``class` `GFG``{` `// Function to place first N natural``// numbers in an array such that none``// of the values are equal to its indices``static` `void` `generatepermutation(``int` `N)``{` `  ``// Stores the required array``    ``Vector answer = ``new` `Vector();` `    ``// Place N at the first position``    ``answer.add(N);` `    ``// Iterate the range [1, N)``    ``for` `(``int` `i = ``1``; i < N; i++)``    ``{``        ``// Append elements to the sequence``        ``answer.add(i);``    ``}` `    ``// Pritn the sequence``    ``for``(``int` `i:answer) System.out.print(i+ ``" "``);``}` `// Driver Code``public` `static` `void` `main(String[] args)``{``  ``int` `N = ``4``;``  ``generatepermutation(N);``}``}` `// This code is contributed by 29AjayKumar`

## Python3

 `# Python program for the above approach` `# Function to place first N natural``# numbers in an array such that none``# of the values are equal to its indices``def` `generatepermutation(N):` `  ``# Stores the required array``    ``answer ``=` `[]` `    ``# Place N at the first position``    ``answer.append(N)` `    ``# Iterate the range [1, N)``    ``for` `i ``in` `range``(``1``, N):` `        ``# Append elements to the sequence``        ``answer.append(i)` `    ``# Pritn the sequence``    ``print``(``*``answer)`  `# Driver Code``N ``=` `4``generatepermutation(N)`

## C#

 `// C# program for the above approach``using` `System;``class` `GFG``{` `// Function to place first N natural``// numbers in an array such that none``// of the values are equal to its indices``static` `void` `generatepermutation(``int` `N)``{` `    ``// Stores the required array``    ``int``[] answer = ``new` `int``[N];` `    ``// Place N at the first position``    ``answer[0] = N;` `    ``// Iterate the range [1, N)``    ``for` `(``int` `i = 1; i < N; i++)``    ``{``      ` `        ``// Append elements to the sequence``        ``answer[i] = i;``    ``}` `    ``// Pritn the sequence``    ``foreach``(``int` `i ``in` `answer) Console.Write(i+ ``" "``);``}` `// Driver Code``static` `public` `void` `Main ()``{``  ``int` `N = 4;``  ``generatepermutation(N);``}``}` `// This code is contributed by Dharanendra L V`

## Javascript

 ``
Output
`4 1 2 3 `

Time Complexity: O(N)
Auxiliary Space: O(1)

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up