GeeksforGeeks App
Open App
Browser
Continue

# Seating arrangement of N boys sitting around a round table such that two particular boys sit together

There are N boys which are to be seated around a round table. The task is to find the number of ways in which N boys can sit around a round table such that two particular boys sit together.
Examples:

Input: N = 5
Output: 12
2 boy can be arranged in 2! ways and other boys
can be arranged in (5 – 2)! (2 is subtracted because the
previously selected two boys will be considered as a single boy now and No. of ways to arrange boys around a round table = (n-1)!)
So, total ways are 2! * (n-2)!)  =  2! * 3! = 12
Input: N = 9
Output: 10080

Approach:

• First, 2 boys can be arranged in 2! ways.
• No. of ways to arrange remaining boys and the previous two boy pair is (n – 2)!.
• So, Total ways = 2! * (n – 2)!.

Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach``#include ``using` `namespace` `std;` `// Function to return the total count of ways``int` `Total_Ways(``int` `n)``{` `    ``// Find (n - 2) factorial``    ``int` `fac = 1;``    ``for` `(``int` `i = 2; i <= n - 2; i++) {``        ``fac = fac * i;``    ``}` `    ``// Return (n - 2)! * 2!``    ``return` `(fac * 2);``}` `// Driver code``int` `main()``{``    ``int` `n = 5;` `    ``cout << Total_Ways(n);` `    ``return` `0;``}`

## Java

 `// Java implementation of the approach``import` `java.io.*;` `class` `GFG``{``    ` `// Function to return the total count of ways``static` `int` `Total_Ways(``int` `n)``{` `    ``// Find (n - 2) factorial``    ``int` `fac = ``1``;``    ``for` `(``int` `i = ``2``; i <= n - ``2``; i++)``    ``{``        ``fac = fac * i;``    ``}` `    ``// Return (n - 2)! * 2!``    ``return` `(fac * ``2``);``}` `// Driver code``public` `static` `void` `main (String[] args)``{` `    ``int` `n = ``5``;` `    ``System.out.println (Total_Ways(n));``}``}` `// This code is contributed by Tushil.`

## Python3

 `# Python3 implementation of the approach` `# Function to return the total count of ways``def` `Total_Ways(n) :` `    ``# Find (n - 2) factorial``    ``fac ``=` `1``;``    ``for` `i ``in` `range``(``2``, n``-``1``) :``        ``fac ``=` `fac ``*` `i;``        ` `    ``# Return (n - 2)! * 2!``    ``return` `(fac ``*` `2``);`  `# Driver code``if` `__name__ ``=``=` `"__main__"` `:` `    ``n ``=` `5``;` `    ``print``(Total_Ways(n));` `# This code is contributed by AnkitRai01`

## C#

 `// C# implementation of the approach``using` `System;` `class` `GFG``{` `// Function to return the total count of ways``static` `int` `Total_Ways(``int` `n)``{` `    ``// Find (n - 2) factorial``    ``int` `fac = 1;``    ``for` `(``int` `i = 2; i <= n - 2; i++)``    ``{``        ``fac = fac * i;``    ``}` `    ``// Return (n - 2)! * 2!``    ``return` `(fac * 2);``}` `// Driver code``static` `public` `void` `Main ()``{``    ``int` `n = 5;` `    ``Console.Write(Total_Ways(n));``}``}` `// This code is contributed by ajit..`

## Javascript

 ``

Output

`12`

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

My Personal Notes arrow_drop_up