m和n通过键盘输入,求出表达式:(n!)/((n-m)!*m!)的值。要求用两种不同的方法完成:第一种是利用for循环求出表达式的值;第二种在主方法中调用自定义求阶乘方法fac()实现。
namespace _4
{
class Program
{
static void Main(string[] args)
{
int m = Int32.Parse(Console.ReadLine());
int n = Int32.Parse(Console.ReadLine());
int fac1 = 1;
int fac2 = 1;
int fac3=1;
int fac11 =fac(m);//方法2:递归
int fac22 = fac(n);
int fac33 = fac(n-m);
for (int i = 1; i <= m; i++)//方法1:循环
{
fac1 *= i;//m的阶乘
}
for (int i = 1; i <= n; i++)
{
fac2 *= i;//n的阶乘
}
for(int i=1;i<(n-m);i++)
{
fac3*=i;//n-m的阶乘
}
Console.WriteLine("(n!)/((n-m)!*m!)");
Console.WriteLine("way1");
Console.WriteLine("fac1={0} fac2={1}", fac1, fac2);//方法一
Console.WriteLine("{0}/({1}*{2}) = {3}", fac2, fac3, fac1,fac2/(fac3*fac1));
Console.WriteLine("way2");
Console.WriteLine("fac1={0} fac2={1}", fac11, fac22);//方法二
Console.WriteLine("{0}/({1}*{2}) = {3}", fac22, fac33, fac11, fac22 / (fac33 * fac11));
}
static int fac(int n)
{
if (n == 1)
return 1;
else
return fac(n - 1) * n;
}
}
}