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: 2880Input: n = 1
Output: 1
Explanation: There is only 1 boy and 1 girl.
So there is only one possible arrangement
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)
Please Login to comment...