Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Write a program that calculates N!*K! / (K-N)! for given N and K (1<N<K).
- */
- using System;
- using System.Numerics;
- class CalculationWithFactorials
- {
- static void Main()
- {
- BigInteger numberN, numberK, result;
- string invalidInput = "Please enter a valid number! (1 < N < K)" + Environment.NewLine;
- while (true)
- {
- BigInteger factorial = 1;
- Console.WriteLine("Enter a value for K: ");
- while (!(BigInteger.TryParse(Console.ReadLine(), out numberK) && numberK > 2))
- {
- Console.WriteLine(invalidInput);
- Console.WriteLine("Enter a value for K: ");
- }
- Console.WriteLine("Enter a value for N: ");
- while (!(BigInteger.TryParse(Console.ReadLine(), out numberN) && numberN > 1 && numberN < numberK))
- {
- Console.WriteLine(invalidInput);
- Console.WriteLine("Enter a value for N: ");
- }
- BigInteger differenceKN = numberK - numberN;
- for (BigInteger i = 2; i <= differenceKN; i++)
- {
- factorial = factorial * i;
- }
- BigInteger factorialKN = factorial;
- if (numberN != differenceKN)
- {
- for (BigInteger i = differenceKN + 1; i <= numberN; i++)
- {
- factorial = factorial * i;
- }
- }
- else
- {
- factorial = factorialKN;
- }
- factorial = factorial * factorial;
- for (BigInteger i = numberN + 1; i <= numberK; i++)
- {
- factorial = factorial * i;
- }
- result = factorial / factorialKN;
- Console.WriteLine("{0}! * {1}! / ({0} - {1})! = {2}" + Environment.NewLine, numberK, numberN, result);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment