# 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 = 5Output:2880

Input:n = 1Output:1Explanation:There is only 1 boy and 1 girl.

So there is only one possible arranegment

**Approach:**

- 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)!** - 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.
- So the total number of arrangement in which girls sit between boys are
**n!**. - 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 <bits/stdc++.h>` `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

`<?php` `// PHP program to find number of` `// ways in which n boys and n` `// girls can sit alternatively` `// sound a round table.` `// Driver Code` `// Get n` `$n` `= 5;` `// find fac1 = (n-1)!` `$fac1` `= 1;` `for` `(` `$i` `= 2; ` `$i` `<= ` `$n` `- 1; ` `$i` `++)` ` ` `$fac1` `= ` `$fac1` `* ` `$i` `;` `// Find fac2 = n!` `$fac2` `= ` `$fac1` `* ` `$n` `;` `// Find total number of ways` `$totalWays` `= ` `$fac1` `* ` `$fac2` `;` `// Print the total number of ways` `echo` `$totalWays` `. ` `"\n"` `;` `// This code is contributed` `// by Akanksha Rai(Abby_akku)` |

## Javascript

`<script>` `// Javascript program to find number of` `// ways in which n boys and n` `// girls can sit alternatively` `// sound a round table.` `// Driver Code` `// Get n` `let n = 5;` `// find fac1 = (n-1)!` `let fac1 = 1;` `for` `(let i = 2; i <= n - 1; i++)` ` ` `fac1 = fac1 * i;` `// Find fac2 = n!` `fac2 = fac1 * n;` `// Find total number of ways` `totalWays = fac1 * fac2;` `// Print the total number of ways` `document.write(totalWays + ` `"<br>"` `);` `// This code is contributed` `// by gfgking` `</script>` |

**Output**

2880

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