Seating arrangement of n boys and girls alternatively around a round table

• Difficulty Level : Medium
• Last Updated : 16 Nov, 2022

There are n boys and n (n < 10) girls are to be seated around a round table, in a circle. The task is to find the number of ways in which n boys and n girls can sit alternatively around a round table.

Examples:

Input: n = 5
Output: 2880

Input: n = 1
Output: 1
Explanation: There is only 1 boy and 1 girl.
So there is only one possible arrangement

Approach:

1. First, find the total number of ways in which boys can be arranged on a round table.
No. of ways to arrange boys on table = (n-1)!
2. After making boys’ arrangements, now make arrangements for girls. After seating boys, there are n space available between them. So there are n positions and n number of girls.
3. So the total number of arrangement in which girls sit between boys are n!
4. Therefore Total number of ways = (number of arrangements of boys) * (number of ways to sit girl among boys) = (n-1)! * (n!)

Below is the implementation of the above approach:

C++

 `// C++ program to find number of ways in which` `// n boys and n girls can sit alternatively` `// sound a round table.` `#include ` `using` `namespace` `std;`   `#define ll long int`   `int` `main()` `{`   `    ``// Get n` `    ``ll n = 5;`   `    ``// find fac1 = (n-1)!` `    ``ll fac1 = 1;` `    ``for` `(``int` `i = 2; i <= n - 1; i++)` `        ``fac1 = fac1 * i;`   `    ``// Find fac2 = n!` `    ``ll fac2 = fac1 * n;`   `    ``// Find total number of ways` `    ``ll totalWays = fac1 * fac2;`   `    ``// Print the total number of ways` `    ``cout << totalWays << endl;`   `    ``return` `0;` `}`

Java

 `// Java program to find number of ways` `// in which n boys and n girls can sit ` `// alternatively sound a round table.` `import` `java .io.*;`   `class` `GFG` `{` `public` `static` `void` `main(String[] args)` `{`   `    ``// Get n` `    ``long` `n = ``5``;`   `    ``// find fac1 = (n-1)!` `    ``long` `fac1 = ``1``;` `    ``for` `(``int` `i = ``2``; i <= n - ``1``; i++)` `        ``fac1 = fac1 * i;`   `    ``// Find fac2 = n!` `    ``long` `fac2 = fac1 * n;`   `    ``// Find total number of ways` `    ``long` `totalWays = fac1 * fac2;`   `    ``// Print the total number of ways` `    ``System.out.println(totalWays);` `}` `}`   `// This code is contributed` `// by anuj_67..`

Python3

 `# Python3 program to find number ` `# of ways in which n boys and n ` `# girls can sit alternatively ` `# sound a round table.`   `# Get n ` `n ``=` `5`   `# find fac1 = (n-1)! ` `fac1 ``=` `1` `for` `i ``in` `range``(``2``, n):` `    ``fac1 ``=` `fac1 ``*` `i`   `# Find fac2 = n! ` `fac2 ``=` `fac1 ``*` `n`   `# Find total number of ways` `totalWays ``=` `fac1 ``*` `fac2`   `# Print the total number of ways ` `print``(totalWays)`   `# This code is contributed ` `# by sahilshelangia`

C#

 `// C# program to find number of ways` `// in which n boys and n girls can sit ` `// alternatively sound a round table.` `using` `System;`   `class` `GFG` `{` `public` `static` `void` `Main()` `{`   `    ``// Get n` `    ``long` `n = 5;`   `    ``// find fac1 = (n-1)!` `    ``long` `fac1 = 1;` `    ``for` `(``int` `i = 2; i <= n - 1; i++)` `        ``fac1 = fac1 * i;`   `    ``// Find fac2 = n!` `    ``long` `fac2 = fac1 * n;`   `    ``// Find total number of ways` `    ``long` `totalWays = fac1 * fac2;`   `    ``// Print the total number of ways` `    ``Console.WriteLine(totalWays);` `}` `}`   `// This code is contributed` `// by Akanksha Rai(Abby_akku)`

PHP

 `

Javascript

 ``

Output

`2880`

Time complexity: O(n), for iterating over n to calculate factorial.
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up
Related Articles