高中的排列组合来用C#实现一下

该代码示例展示了如何使用C#语言解决高中数学中的排列组合问题。程序通过do...while循环确保输入值大于0,然后利用for循环计算排列和组合,最后输出特定情况下的取法数量。代码可能存在不简洁和不严谨之处,欢迎改进。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.这里的代码并可能并不简洁和严谨,欢迎各位朋友指出问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值