[C#]横竖都是4九宫格算法

本文介绍了一种用于求解特定数学方程组的算法实现。通过多重循环和条件判断,该算法能够找到满足一系列等式的整数解。文章详细展示了如何限制变量范围并逐步逼近正确答案的过程。

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

群里的网友抛出了这样一道题
这里写图片描述
我的算法:

        static void Main(string[] args)
        {
            /*
             *  a + b - 9 = 4
             *  +    -    -  
             *  c - d * e =4
             * /     *    -
             * f  + g - h=4
             * ||     ||    ||
             * 4     4    4 
             * */
            int flag = 50;
            for(int a=0;a<14; a++) //a
            {
                for (int b = 0; b <14; b++) //b
                {
                    //a+b-9=4 故 a+b=13
                    if ((a + b) == 13)
                    {
                        //9-e-h=4 故 e+h=5, e<6,h<6
                        for (int e = 0; e < 6; e++)  //e  
                        {
                            for (int h = 0; h < 6; h++)  //h
                            {
                                if ((e + h) == 5) 
                                {
                                    for (int c = 0; c < flag; c++) //c
                                    {
                                        //b-d*g=4,b[0-13] 故d*g<10,d,g<10
                                        for (int d = 0; d < 10; d++) //d     d*g<=9
                                        {
                                            for (int g = 0; g < 10; g++) //g
                                            {
                                                //考虑到f为被除数,故f>0,考虑整除c%f==0
                                                for (int f = 1; f < flag; f++) //f
                                                {
                                                    while ((c % f )== 0&&(c - d * e) == 4 && (f + g - h) == 4 && (a + c / f) == 4 && (b - d * g) == 4) 
                                                    {
                                                            Console.WriteLine("----------------------------------");
                                                            Console.Write("a:{0} ", a.ToString());
                                                            Console.Write("b:{0} ", b.ToString());
                                                            Console.Write("c:{0} ", c.ToString());
                                                            Console.Write("d:{0} ", d.ToString());
                                                            Console.Write("e:{0} ", e.ToString());
                                                            Console.Write("f:{0} ", f.ToString());
                                                            Console.Write("g:{0} ", g.ToString());
                                                            Console.WriteLine("h:{0} ", h.ToString());
                                                            Console.WriteLine("----------------------------------");
                                                            Console.ReadLine();
                                                    }                                                                                     
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

这里写图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

厦门德仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值