1.高中排列组合的一些题总让人云里雾里,并不是它有多难算,而是它太灵活了,当然有些靠技巧的庞大数据排列组合,就可以用C#暴力解题。下面是具体代码:
namespace Console_text003
{
class Program
{
static int n,m;
//income()类的成员函数,使输入值满足>0的要求,否则重新输入;应用了do....while()循环。
static void income()
{
do
{
//输入数据之间用回车分开,实现多个数据输入。
//循环使用“||”逻辑,俩个条件任意一个满足就循环。
Console.WriteLine("请分别输入排列组合的上下数值");
n = Convert.ToInt32(Console.ReadLine());
m = Convert.ToInt32(Console.ReadLine());
} while (n < 0 || m < 0);
}
static void Main(string[] args)
{
//用for循环来实现乘阶,其实不用double浮点型也可以,毕竟排列组合是不会出现小数的。
double o, i,p ;
income();
double s = 1;
for (int k = 1; k <= n; k++) s *= k;
double a = 1;
for (int k = 1; k <= m; k++) a *= k;
p = m - n;
double h = 1;
for (int k = 1; k <= p; k++) h *= k;
o = s * h;
i = a / o;
Console.WriteLine("C{0}取{1}有{2}种取法", m,n,i);
Console.ReadKey();
}
}
}
2.这里的代码并可能并不简洁和严谨,欢迎各位朋友指出问题。