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

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)

Previous
Next