Advertisement
Guest User

Untitled

a guest
Dec 5th, 2014
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.07 KB | None | 0 0
  1. using System;
  2.  
  3. class CalculateNKNK
  4. {
  5.     static void Main()
  6.     {
  7.         int n = int.Parse(Console.ReadLine());
  8.         int k = int.Parse(Console.ReadLine());
  9.         int nSubK = n - k;
  10.  
  11.         ulong factN = GetFactorialN(n);
  12.         ulong factK = GetFactorialK(k);
  13.         ulong factNSubK = GetFactorialNSubK(nSubK);
  14.  
  15.         if (1 < k && k < n && n < 100)
  16.         {
  17.             ulong result = 1;
  18.             result = factN / (factK * factNSubK);
  19.             Console.WriteLine(result);
  20.         }        
  21.     }
  22.  
  23.     private static ulong GetFactorialN(int n)
  24.     {
  25.         if (n == 0)
  26.         {
  27.             return 1;
  28.         }
  29.         return (ulong)n * GetFactorialN(n - 1);
  30.     }
  31.  
  32.     private static ulong GetFactorialK(int k)
  33.     {
  34.         if (k == 0)
  35.         {
  36.             return 1;
  37.         }
  38.         return (ulong)k * GetFactorialK(k - 1);
  39.     }
  40.  
  41.     private static ulong GetFactorialNSubK(int nSubK)
  42.     {
  43.         if (nSubK == 0)
  44.         {
  45.             return 1;
  46.         }
  47.         return (ulong)nSubK * GetFactorialNSubK(nSubK - 1);
  48.     }
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement