using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace fact
{
class Program
{
static int f(int n)
{
if (n == 1) return 1;
return n * f(n - 1);
}
static void Main(string[] args)
{
int k;
Console.Write("Введите число n:");
k = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Результат: {0}", f(k));
Console.ReadKey();
}
}
}
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main (string[] args)
{
try {
Console.Write ("Введите число n:");
long n = long.Parse (Console.ReadLine ());
Console.Write ("Введите число k:");
long k = long.Parse (Console.ReadLine ());
Console.WriteLine ("1.Количество сочетаний из {0} по {1}: {2}", n, k, c (n, k));
Console.WriteLine ("2.Количество сочетаний из {0} по {1}: {2}", n, k, c2 (n, k));
} catch (Exception ex) {
Console.WriteLine ("{0}", ex.Message);
} finally {
Console.ReadKey ();
}
}
static long c (long n, long k)
{
if (n < 0 || k < 0 || n < k) {
throw new ArgumentException ("Должны выполняться следующие условия: n>=0, k>=0, n>=k");
}
long result = 1;
long t = 1;
while (n>k) {
checked {
result = result * ++k / t++;
}
}
return result;
}
static long c2 (long n, long k)
{
if (n < 0 || k < 0 || n < k) {
throw new ArgumentException ("Должны выполняться следующие условия: n>=0, k>=0, n>=k");
}
return fact (n) / fact (k) / fact (n - k);
}
static long fact (long n)
{
long result = 1;
if (n < 0) {
throw new ArgumentException ("Аргумент для факториала должен быть больше нуля");
}
while (n>1) {
checked {
result *= n--;
}
}
return result;
}
}
}
Введите число n:10
Введите число k:4
1.Количество сочетаний из 10 по 4: 210
2.Количество сочетаний из 10 по 4: 210
if (n == 1) return 1;
if (n == 0) return 1;
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.