c# перестановка с повтором
хочу сделать перестановку с повтором, но идей совсем нет, хоть и формула на руках, подскажите пожалуйста как это можно реализовать на с# , новичок , не судите строго. код:
using System;
class Program{
static long Factorial(double max)
{
//int i=0;
long s=1;
//int n=0;
//Console.ReadLine();
if (max==0){return 1;}
else for (long i = 1; i <= max; i++)
{s*=i;
//Console.WriteLine(i);
}
return s;
}
public static void Main()
{
//return Factorial(50);
Console.WriteLine("Введите n,m");
double n=Console.Read();
double m=Console.Read();
float С1=Factorial((m+n-1)/Factorial((m-1)*Factorial(n))); //Сочетание- Повтор есть
float C=Factorial(n)/(Factorial(m)*Factorial(n-m)); //Сочетание -Повтора нет
double A1=Math.Pow(m,n);// Размещение повтор есть
float A=Factorial(n)/Factorial(n-m);//Размещение повтора нет
float P =Factorial(n); //Перестановка -Повтора нет
}
}