# 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 = 5Output: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! = 12Input:N = 9Output: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 <bits/stdc++.h>` `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

`<script>` `// javascript implementation of the approach` ` ` `// Function to return the total count of ways` ` ` `function` `Total_Ways(n) ` ` ` `{` ` ` `// Find (n - 2) factorial` ` ` `var` `fac = 1;` ` ` `for` `(i = 2; i <= n - 2; i++) ` ` ` `{` ` ` `fac = fac * i;` ` ` `}` ` ` `// Return (n - 2)! * 2!` ` ` `return` `(fac * 2);` ` ` `}` ` ` `// Driver code` ` ` `var` `n = 5;` ` ` `document.write(Total_Ways(n));` `// This code is contributed by aashish1995` `</script>` |

**Output**

12

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