`
hsys
  • 浏览: 290817 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

一道趣味数学题,很有意思

阅读更多
123456789这九个按顺序排列的数,要求在它们之间插入若干个+,-,*,/ ,使其结果正好等于100如: 1*2*3*4+5+6+7*8+9=100

我的程序:
        static void Main(string[] args)
        {
            int i = 0;
            foreach (string str in new Program().procedure("123456789"))
            {
                if (new Program().getRes(str) == 100)
                {
                    i++;
                    Console.WriteLine("第" + i + "解: " + str+"=100");
                }
            }
            //new Program().getRes("123+45-67+89");
            Console.WriteLine("共" + i + "解");
            Console.WriteLine("");
            i = 0;
            foreach (string str in new Program().procedure("987654321"))
            {
                if (new Program().getRes(str) == 100)
                {
                    i++;
                    Console.WriteLine("第" + i + "解: " + str + "=100");
                }
            }
            //new Program().getRes("98*7/6+5*4/3-21");
            //new Program().getRes("98*7/6-5*4/3*2-1");
            //这两个解我没做出来希望有人可以帮我解答下,谢谢
            Console.WriteLine("共"+i+"解");
        }


要用到的函数一:遍历所有表达式
        #region 返回+ - * /表达式集合
        /// <summary>
        /// 返回+ - * /表达式集合
        /// </summary>
        /// <param name="num">数字序列</param>
        /// <returns>+ - * /表达式集合</returns>
        public List<string> procedure(string num)
        {
            string[] op = { "+", "-", "*", "/", "" };
            List<string> res = new List<string>();
            List<string> resMore = new List<string>();
            res.Add(num);
            int i = 0;
            if (num.Length == 1)
            {
                return res;
            }
            else
            {
                string first = num.Substring(0, num.Length - 1);
                string second = num.Substring(num.Length - 1, 1);

                for (i = 0; i < 5; i++)
                {
                    foreach (string str in procedure(first))
                    {
                        resMore.Add(str + op[i] + second);
                    }
                }
                return resMore;
            }
        }
        #endregion


所要函数二:这个计算表达式的值
        #region 计算加减乘除
        /// <summary>
        /// 计算加减乘除
        /// </summary>
        /// <param name="ex">表达式</param>
        /// <returns>结果</returns>
        public Double getRes(string ex)
        {
            if (ex.Contains("+"))
            {
                string[] f = ex.Split('+');
                Double sum = 0;
                for (int i = 0; i < f.Length; i++)
                {
                    sum += getRes(f[i]);
                }
                return sum;
            }
            else if (ex.Contains("-"))
            {
                string[] f = ex.Split('-');
                Double sum = getRes(f[0]);
                for (int i = 1; i < f.Length; i++)
                {
                    sum -= getRes(f[i]);
                }
                return sum;
            }
            else if (ex.Contains("*"))
            {
                string[] f = ex.Split('*');
                Double sum = 1;
                for (int i = 0; i < f.Length; i++)
                {
                    sum *= getRes(f[i]);
                }
                return sum;
            }
            else if (ex.Contains("/"))
            {
                string[] f = ex.Split('/');
                Double sum = getRes(f[0]);
                for (int i = 1; i < f.Length; i++)
                {
                    if ( getRes(f[i]) ==0)
                    {
                        return 1000;
                    }
                    sum /= getRes(f[i]);
                }
                return sum;
            }
            else
                return Convert.ToDouble(ex);
        }
        #endregion


这个程序的解:
第1解: 12+34+5*6+7+8+9=100
第2解: 1+23-4+56+7+8+9=100
第3解: 1/2/3*456+7+8+9=100
第4解: 1*2+34+5+6*7+8+9=100
第5解: 12+34-5+6*7+8+9=100
第6解: 1-2-3+45+6*7+8+9=100
第7解: 1+2*3+4+5+67+8+9=100
第8解: 12+3-4+5+67+8+9=100
第9解: 1-2+3*4+5+67+8+9=100
第10解: 1-2-3+4*5+67+8+9=100
第11解: 12*3-4*5+67+8+9=100
第12解: 1+23*4+5-6+7-8+9=100
第13解: 1*2+34+56+7-8+9=100
第14解: 1+2+3*4*56/7-8+9=100
第15解: 1*23+4+5+67-8+9=100
第16解: 1+2+34-5+67-8+9=100
第17解: 12+3*4+5+6+7*8+9=100
第18解: 1*2*3*4+5+6+7*8+9=100
第19解: 12-3+4*5+6+7*8+9=100
第20解: 1*2+34+5-6+7*8+9=100
第21解: 12+34-5-6+7*8+9=100
第22解: 1-2-3+45-6+7*8+9=100
第23解: 12-3-4+5*6+7*8+9=100
第24解: 1*23+4+56/7*8+9=100
第25解: 1*23*4-56/7/8+9=100
第26解: 1+2+3-4+5+6+78+9=100
第27解: 1*2*3-4+5+6+78+9=100
第28解: 1*2+3*4+5-6+78+9=100
第29解: 12+3*4-5-6+78+9=100
第30解: 1*2*3*4-5-6+78+9=100
第31解: 1*2-3+4*5-6+78+9=100
第32解: 1+2+3*4*5/6+78+9=100
第33解: 1+2*34-56+78+9=100
第34解: 1+234*5*6/78+9=100
第35解: 1+23*4-5+6+7+8-9=100
第36解: 123-4-5-6-7+8-9=100
第37解: 1-2+3*4*5+6*7+8-9=100
第38解: 123+4*5-6*7+8-9=100
第39解: 1+23*4+56/7+8-9=100
第40解: 123+45-67+8-9=100
第41解: 12/3+4*5*6-7-8-9=100
第42解: 1*2*34+56-7-8-9=100
第43解: 1*2+3+45+67-8-9=100
第44解: 1-2+3+45+6+7*8-9=100
第45解: 1-2+3*4*5-6+7*8-9=100
第46解: 12/3+4*5*6*7/8-9=100
第47解: 1+23-4+5+6+78-9=100
第48解: 1*2+3+4*5+6+78-9=100
第49解: 12*3-4+5-6+78-9=100
第50解: 1*2+3-4+5*6+78-9=100
第51解: 12/3/4+5*6+78-9=100
第52解: 1+2+3+4+5+6+7+8*9=100
第53解: 1*2*3+4+5+6+7+8*9=100
第54解: 1+23-4-5+6+7+8*9=100
第55解: 1-2*3+4*5+6+7+8*9=100
第56解: 12*3-4-5-6+7+8*9=100
第57解: 1+2*3+4*5-6+7+8*9=100
第58解: 1-2*3-4+5*6+7+8*9=100
第59解: 1+2-3*4+5*6+7+8*9=100
第60解: 1+2*3*4*5/6+7+8*9=100
第61解: 1-2-34+56+7+8*9=100
第62解: 1/2*3/4*56+7+8*9=100
第63解: 12+3*4+5+6-7+8*9=100
第64解: 1*2*3*4+5+6-7+8*9=100
第65解: 12-3+4*5+6-7+8*9=100
第66解: 1*2+34+5-6-7+8*9=100
第67解: 12+34-5-6-7+8*9=100
第68解: 1-2-3+45-6-7+8*9=100
第69解: 12-3-4+5*6-7+8*9=100
第70解: 1-2*3-4-5+6*7+8*9=100
第71解: 1+2-3*4-5+6*7+8*9=100
第72解: 1+2+3-4*5+6*7+8*9=100
第73解: 1*2*3-4*5+6*7+8*9=100
第74解: 1+23-4+56/7+8*9=100
第75解: 1*2+34-56/7+8*9=100
第76解: 1-2-3+4*56/7+8*9=100
第77解: 1+2+3-45+67+8*9=100
第78解: 1*2*3-45+67+8*9=100
第79解: 1+2+34*5+6-7-8*9=100
第80解: 1+234-56-7-8*9=100
第81解: 1*234+5-67-8*9=100
第82解: 1*2-3+4-5+6+7+89=100
第83解: 1+2*3-4-5+6+7+89=100
第84解: 1-23+4*5+6+7+89=100
第85解: 12-3-4+5-6+7+89=100
第86解: 1+2+3*4-5-6+7+89=100
第87解: 1-23-4+5*6+7+89=100
第88解: 1*2/3+4*5/6+7+89=100
第89解: 1/2*34-5+6-7+89=100
第90解: 12+3+4+5-6-7+89=100
第91解: 1*23-4+5-6-7+89=100
第92解: 12/3+4*5-6-7+89=100
第93解: 1-23-4-5+6*7+89=100
第94解: 1*2-3+4+56/7+89=100
第95解: 1+2*3-4+56/7+89=100
第96解: 12+3+4-56/7+89=100
第97解: 1*23-4-56/7+89=100
第98解: 123-45-67+89=100
第99解: 1+234*5/6-7-89=100
第100解: 12+3*45+6*7-89=100
第101解: 123+4-5+67-89=100
共101解

第1解: 9*8+7+6+5+4+3+2+1=100
第2解: 98-7-6+5+4+3+2+1=100
第3解: 9+8+76+5-4+3+2+1=100
第4解: 9*8+7*6-5*4+3+2+1=100
第5解: 9*8+76-54+3+2+1=100
第6解: 98+7-6+5-4-3+2+1=100
第7解: 9+87-6-5+4*3+2+1=100
第8解: 9*8+7*6-5-4*3+2+1=100
第9解: 9*8+7+6*5-4*3+2+1=100
第10解: 9*8-7-6-5+43+2+1=100
第11解: 9+8*7-6-5+43+2+1=100
第12解: 9+8+7*6-5+43+2+1=100
第13解: 9+8+7+6*5+43+2+1=100
第14解: 98+7-6-5+4+3-2+1=100
第15解: 98-7+6+5-4+3-2+1=100
第16解: 98/7*6+5*4-3-2+1=100
第17解: 9*8*7/6+5*4-3-2+1=100
第18解: 98/7*6+5+4*3-2+1=100
第19解: 9*8*7/6+5+4*3-2+1=100
第20解: 9+8+7+65+4*3-2+1=100
第21解: 9*8+7+65-43-2+1=100
第22解: 98/7*6+5+4+3*2+1=100
第23解: 9*8*7/6+5+4+3*2+1=100
第24解: 9+8+7+65+4+3*2+1=100
第25解: 9+87+6-5-4+3*2+1=100
第26解: 9*8+7-6+5*4+3*2+1=100
第27解: 9*8+7*6-5-4-3*2+1=100
第28解: 9*8+7+6*5-4-3*2+1=100
第29解: 9*8+7+6+5*4-3*2+1=100
第30解: 98-7-6+5*4-3*2+1=100
第31解: 98/7*6*5/4-3*2+1=100
第32解: 9*8*7/6*5/4-3*2+1=100
第33解: 98+7-6*5+4*3*2+1=100
第34解: 9+8-7+65+4*3*2+1=100
第35解: 98/7-6+5+43*2+1=100
第36解: 9+8+7-6-5+43*2+1=100
第37解: 98+7-6*5/4+3/2+1=100
第38解: 9+8+7-6+54*3/2+1=100
第39解: 9*8+7+6*5*4/3/2+1=100
第40解: 9+87-6+54/3/2+1=100
第41解: 98+7*6-5-4-32+1=100
第42解: 98+7+6*5-4-32+1=100
第43解: 98+7+6+5*4-32+1=100
第44解: 9-8+76+54-32+1=100
第45解: 9+8+7*6*5-4*32+1=100
第46解: 9*8-7-6+5/4*32+1=100
第47解: 9+8*7-6+5/4*32+1=100
第48解: 9+8+7*6+5/4*32+1=100
第49解: 98-7+6-5+4+3+2-1=100
第50解: 9-8+76*5/4+3+2-1=100
第51解: 9+8+76+5+4-3+2-1=100
第52解: 98+7+6-5-4-3+2-1=100
第53解: 98+7-6+5-4+3-2-1=100
第54解: 98-7+6+5+4-3-2-1=100
第55解: 9-8+7*6+5*4*3-2-1=100
第56解: 9+8-76+54*3-2-1=100
第57解: 9*8+7+6+54/3-2-1=100
第58解: 98-7-6+54/3-2-1=100
第59解: 9+87+6*5/4/3*2-1=100
第60解: 98/7+6-5+43*2-1=100
第61解: 9+87*6-5*43*2-1=100
第62解: 9+87-6+5+4*3/2-1=100
第63解: 9*8-7+6*5+4*3/2-1=100
第64解: 9+8*7+6*5+4*3/2-1=100
第65解: 9+87+6+5-4*3/2-1=100
第66解: 9*8-7+6+5*4*3/2-1=100
第67解: 9+8*7+6+5*4*3/2-1=100
第68解: 98/7+6+54*3/2-1=100
第69解: 9-8+7+65-4+32-1=100
第70解: 9+87+6-5+4-3+2*1=100
第71解: 9+87-6+5+4+3-2*1=100
第72解: 9*8-7+6*5+4+3-2*1=100
第73解: 9+8*7+6*5+4+3-2*1=100
第74解: 9*8+7*6-5-4-3-2*1=100
第75解: 9*8+7+6*5-4-3-2*1=100
第76解: 9*8+7+6+5*4-3-2*1=100
第77解: 98-7-6+5*4-3-2*1=100
第78解: 98/7*6*5/4-3-2*1=100
第79解: 9*8*7/6*5/4-3-2*1=100
第80解: 9*8+7+6+5+4*3-2*1=100
第81解: 98-7-6+5+4*3-2*1=100
第82解: 98/7*6+54/3-2*1=100
第83解: 9*8*7/6+54/3-2*1=100
第84解: 9-8-7+6*54/3-2*1=100
第85解: 9-8-7+65+43-2*1=100
第86解: 98+7*6+5-43-2*1=100
第87解: 9*8+7+6+5+4+3*2*1=100
第88解: 98-7-6+5+4+3*2*1=100
第89解: 9+8+76+5-4+3*2*1=100
第90解: 9*8+7*6-5*4+3*2*1=100
第91解: 9*8+76-54+3*2*1=100
第92解: 98-7+6+5+4-3*2*1=100
第93解: 9*8-7+6+5+4*3*2*1=100
第94解: 9+8*7+6+5+4*3*2*1=100
第95解: 98+7/6+5/4/3*2*1=100
第96解: 98+7-6*5/4/3*2*1=100
第97解: 9*8+7-65+43*2*1=100
第98解: 98-7+6*5/4+3/2*1=100
第99解: 98+7-6-5+4*3/2*1=100
第100解: 98+7+6-5-4*3/2*1=100
第101解: 9*8-7-6+5+4+32*1=100
第102解: 9+8*7-6+5+4+32*1=100
第103解: 9+8+7*6+5+4+32*1=100
第104解: 9-8+76-5-4+32*1=100
第105解: 9-8+7+6+54+32*1=100
第106解: 98+7*6-5/4*32*1=100
第107解: 9-8*7*6-5+432*1=100
第108解: 9+87+6-5+4-3+2/1=100
第109解: 9+87-6+5+4+3-2/1=100
第110解: 9*8-7+6*5+4+3-2/1=100
第111解: 9+8*7+6*5+4+3-2/1=100
第112解: 9*8+7*6-5-4-3-2/1=100
第113解: 9*8+7+6*5-4-3-2/1=100
第114解: 9*8+7+6+5*4-3-2/1=100
第115解: 98-7-6+5*4-3-2/1=100
第116解: 98/7*6*5/4-3-2/1=100
第117解: 9*8*7/6*5/4-3-2/1=100
第118解: 9*8+7+6+5+4*3-2/1=100
第119解: 98-7-6+5+4*3-2/1=100
第120解: 98/7*6+54/3-2/1=100
第121解: 9*8*7/6+54/3-2/1=100
第122解: 9-8-7+6*54/3-2/1=100
第123解: 9-8-7+65+43-2/1=100
第124解: 98+7*6+5-43-2/1=100
第125解: 9*8+7+6+5+4+3*2/1=100
第126解: 98-7-6+5+4+3*2/1=100
第127解: 9+8+76+5-4+3*2/1=100
第128解: 9*8+7*6-5*4+3*2/1=100
第129解: 9*8+76-54+3*2/1=100
第130解: 98-7+6+5+4-3*2/1=100
第131解: 9*8-7+6+5+4*3*2/1=100
第132解: 9+8*7+6+5+4*3*2/1=100
第133解: 98+7/6+5/4/3*2/1=100
第134解: 98+7-6*5/4/3*2/1=100
第135解: 9*8+7-65+43*2/1=100
第136解: 98-7+6*5/4+3/2/1=100
第137解: 98+7-6-5+4*3/2/1=100
第138解: 98+7+6-5-4*3/2/1=100
第139解: 9*8-7-6+5+4+32/1=100
第140解: 9+8*7-6+5+4+32/1=100
第141解: 9+8+7*6+5+4+32/1=100
第142解: 9-8+76-5-4+32/1=100
第143解: 9-8+7+6+54+32/1=100
第144解: 98+7*6-5/4*32/1=100
第145解: 9-8*7*6-5+432/1=100
第146解: 9-8+76-5+4+3+21=100
第147解: 9*8+7+6-5-4+3+21=100
第148解: 98-7-6-5-4+3+21=100
第149解: 98-7*6+5*4+3+21=100
第150解: 98-76+54+3+21=100
第151解: 9*8+7-6+5+4-3+21=100
第152解: 9+87+6-5*4-3+21=100
第153解: 98-7+6-54/3+21=100
第154解: 9*8+7*6-5+4*3-21=100
第155解: 9*8+7+6*5+4*3-21=100
第156解: 9-8*7+6+54*3-21=100
第157解: 9-8-7*6+54*3-21=100
第158解: 9*8+7-6+5+43-21=100
第159解: 9-8+76-5+4/3*21=100
共159解

在网上看到的别人的解比我的解多了两种,也就是我上面指出来的两个解。
正解的网址:http://blog.csdn.net/northwolves/archive/2009/11/20/4841068.aspx


1
0
分享到:
评论

相关推荐

    马克思手稿中的趣味数学题

    标题中的“马克思手稿中的趣味数学题”是指在卡尔·马克思的手稿中发现的一道有趣的数学问题,这道问题融合了实际生活情境与基础代数知识。问题描述了一个包含30个人的群体(男性、女性和小孩)在饭馆用餐,总共花费...

    马克思的趣味数学题,用C++编写程序!

    马克思的趣味数学题,用C++编写程序!有30个人,其中有男人,女人,小孩,在一家饭馆吃饭共花50先令,每个男人花3先令,每个女人花2先令,每个小孩花1先令,问男人,女人,小孩各多少人?

    马克思手稿中的数学题(穷举算法)和学生成绩管理.rar

    1、马克思手稿中有一道趣味数学题:有30个人,其中有男人、女人和小孩,在一家饭馆吃饭共花了50先令:每个男人花3先令,每个女人花2先令,每个小孩花1先令,问男人、女人、小孩各有几人? 2、学生成绩管理 有N名学生...

    c语言原创趣味试题,很有意思的 大家看看吧

    - C题(Fish in Canteen)涉及计算盈利或亏损,需要求出所有刷卡金额与标准价格的差值总和,并根据结果决定输出。 - D题(Ultraman)的描述不完整,但通常这类题目可能涉及到字符串处理、数组或循环计算。 学习...

    088 马克思手稿中的数学题 C语言源代码文件

    标题中的“088 马克思手稿中的数学题 C语言源代码文件”提示我们,这可能是一个关于使用C语言解决数学问题的程序。马克思手稿中的数学题可能是指马克思在研究经济学或其他领域时遇到的数学问题,而这个项目可能是...

    趣味数学题

    这些趣味数学题涵盖了许多数学概念和思维技巧,适合用来锻炼逻辑推理和问题解决能力。首先,我们可以看到选择题部分涉及到了利润计算、年龄问题、追及问题、逻辑推理、排列组合等多个方面。 第一题是关于买卖马的...

    4年级趣味数学题.pdf

    4年级趣味数学题.pdf

    小学三年级趣味数学试题(含答案).doc

    小学三年级趣味数学试题(含答案).doc

    趣味数学题逻辑推理PPT课件.pptx

    趣味数学题逻辑推理PPT课件.pptx

    小学三年级趣味数学题.docx

    - 第八题考察分割绳子的次数,涉及到基础的数学概念。 - 第九题是两个序列的差值计算,需要找到合适的规律。 - 第十题是一个年龄问题,运用代数方法求解。 - 第十一题涉及数列的查找规律,需要观察数列之间的...

    鸡兔同笼和马克思手稿中的30个人吃饭Java第六章作业

    在本Java第六章作业中,我们探讨了两个经典数学问题,分别是“鸡兔同笼”问题和基于马克思手稿的趣味数学挑战。这两个问题都属于线性方程组的应用,旨在锻炼我们的逻辑思维和编程能力。 首先,让我们来解决“鸡兔同...

    青少年趣味数学竞赛题

    ### 青少年趣味数学竞赛知识点解析 #### 一、基础数学推理题 **1. 鸡蛋问题** - **题目**: 如果1.5只鸡在1.5天内下了1.5个蛋,那么6只鸡在6天内能下多少个蛋? - **解析**: 首先理解题目的条件,1.5只鸡1.5天产1.5个...

    5年级趣味数学题.pdf

    标题:“5年级趣味数学题.pdf” 描述:“5年级趣味数学题.pdf” 标签:“初中教育” 一、数学题目的解题方法及知识点: 1. 规定运算A×B=3×A+4×B,这个特殊定义的运算规则,要求学生了解并应用这个规则进行后续...

    趣味数学题及游戏.doc

    趣味数学题及游戏.doc

    一年级趣味数学题.doc

    "一年级趣味数学题" 本资源摘要信息涵盖了 20 道趣味数学题,涉及到基本数学运算、逻辑思维、推理能力等多方面的知识点。 知识点 1: 数学运算 * 题目 1: 一年级趣味数学题 + 知识点: 加法、减法、乘法、除法等...

    小学趣味数学题集锦.pdf

    小学趣味数学题集锦.pdf

    小学趣味数学题集锦.doc

    小学趣味数学题集锦.doc

    小学一年级趣味数学题.doc

    小学一年级趣味数学题.doc

    五年级趣味数学题.doc

    五年级趣味数学题.doc

Global site tag (gtag.js) - Google Analytics