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 = 5
Output: 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! = 12
Input: N = 9
Output: 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> |
12
Time Complexity: O(n)
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!