我也来试试“越南小学三年级数学题难倒博士”的难题

今天的百度排行榜,一个标题为”越南数学题难倒博士“的新闻热点吸引了我,于是猛戳

原文链接为:http://news.sina.com.cn/w/p/2015-05-21/100531859030.shtml:

题目大致是这样的:

学生需要由上至下、从左到右的顺序,填入1至9的数字,可重复填写,并按先乘除后加减的运算法则,完成整条算式。

河内一家人才培育中心的副总监陈方表示,题目只需用到基本运算技巧,他邀请一些成年人挑战,包括拥有经济学博士学位的人,不过全部人都答不出来。

在越南教育科学研究所修读博士学位的阮玉江则利用计算机程序,找出所有可能组合,结果竟“印满74张A4纸”。她称计算机能轻易计出答案,“但人脑肯定不容易”

这题目,的确很坑,实际上这就是一个可重复排列组合的筛选问题,入门级的程序员都可以轻松搞定:

class Program
    {
        static void Main(string[] args)
        {
            int resultCount = 0;
            for (int i1 = 1; i1 <= 9; i1++)
            {
                for (int i2 = 1; i2 <= 9; i2++)
                {
                    for (int i3 = 1; i3 <= 9; i3++)
                    {
                        for (int i4 = 1; i4 <= 9; i4++)
                        {
                            for (int i5 = 1; i5 <= 9; i5++)
                            {
                                for (int i6 = 1; i6 <= 9; i6++)
                                {
                                    for (int i7 = 1; i7 <= 9; i7++)
                                    {
                                        for (int i8 = 1; i8 <= 9; i8++)
                                        {
                                            for (int i9 = 1; i9 <= 9; i9++)
                                            {
                                                if (i1 + 13 * i2 / i3 + i4 + 12 * i5 - i6 - 11 + i7 * i8 / i9 - 10 == 66)
                                                {
                                                    Console.WriteLine(i1 + "," + i2 + "," + i3 + "," + i4 + "," + i5 + "," + i6 + "," + i7 + "," + i8 +","+ i9);
                                                    resultCount++;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            Console.WriteLine("答案总数:" + resultCount);
            Console.ReadLine();
        }
    }

控制台程序执行完成,打印结果如下:

如果不是运用计算机的处理速度,就算是神童,让他来解这题,估计也要醉了。

时间: 2024-10-11 00:26:45

我也来试试“越南小学三年级数学题难倒博士”的难题的相关文章

用C++解越南小学三年级数学题

据悉题目来自越南保禄小学三年班,学生需要由上至下.从左到右的顺序,填入1至9的数字,可重复填写,并按先乘除后加减的运算法则,完成整条算式. 河内一家人才培育中心的副总监陈方表示,题目只需用到基本运算技巧,他邀请一些成年人挑战,包括拥有经济学博士学位的人,不过全部人都答不出来. 人力很难办到的事情,用计算机来解决就简单多了.我们使用C++程序设计语言,采用穷举法来计算这道题目.穷举法的基本思想是根据题目的部分条件确定答案的大致范围,并在此范围内对所有可能的情况逐一验证,直到全部情况验证完毕.若某个

越南小学三年级一道数学题解答

看到这则新闻后觉得有点无语,这道题也难的没那么夸张,写程序的话也简单,希望媒体报道的新闻像个新闻,别什么事都当新闻报,倒是希望多报一些关于科技和经济的一些有价值的新闻.废话少说,直接上代码了. #include<iostream> #include<stdlib.h> #include<fstream> #include<time.h> using namespace std; int main(){ fstream outfile; outfile.ope

【算法编程】小学数学题难倒博士

昨天在科学网上得知这样一个新闻<越南小学数学题难倒博士>,据悉题目来自越南保禄小学三年班,不过报道称该题难倒了上至博士下至家长,未免也太言过其实了. 题目描述 学生需要在下图表格中按由上至下.从左到右的顺序,填入1~9的数字,可重复填写,并按先乘除后加减(图中冒号代表除法)的运算法则,完成整条算式. 解题方法 显然,这题对于我们这种程序员来说完全不是问题,只要在大一上过C语言的学生(我们学校全校都学过C,即使是文科专业)基本上都可以用九重for循环来穷举解出此题,下面我分别用C和Matlab实

三年级计算

三年级计算题 211606390 张晋誌 211606329 王浩 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 60 65 ? Estimate ? 估计这个任务需要多少时间 60 65 Development 开发 590 1195 ? Analysis ? 需求分析 (包括学习新技术) 90 120 ? Design Spec ? 生成设计文档 30 60 ? Design Rev

小学奥数读本(三年级),P133第12题

小学奥数读本(三年级),P133第12题. 用一到八,八个数,组成一道除法算式:口口口口÷口=口口口 这题有两个答案: 453*6=2718 582*3=1746 用pascal编程解决,解法一: 1 var 2 i,j:longint; 3 s:set of char; 4 st:string; 5 begin 6 for i:=123 to 987 do 7 for j:=1 to 8 do begin 8 s:=[]; 9 str(i,st); 10 s += [st[1]]+[st[2]

小学奥数读本(三年级),P140第9题

小学奥数读本(三年级),P140第9题. 一共可以有四种情况,这四种情况下,周长各不相同. 小学奥数读本(三年级),P140第9题,布布扣,bubuko.com

小学奥数读本(三年级),P133第13题

小学奥数读本(三年级),P133第13题. 用一到九,九个数,组成一道除法算式:口口口口×口=口口口口 1 var 2 i,j,k:longint; 3 s:set of 0..9; 4 begin 5 for i:=1234 to 9876 do 6 for j:=2 to 9 do begin 7 s:=[]; 8 s += [j]; 9 k:=i; 10 while(k>0) do begin 11 s += [k mod 10]; 12 k := k div 10; 13 end; 14

[Android下载]2014北京新版小学英语三年级上册点读手机软件

小学英语三年级上册点读软件.根据2014年北京教改版教材编写,发音标准.实现点读功能.点到哪里读到哪里.哪里不会点哪里!北京教育科学研究院编写,北京出版社出版.ISBN:9787200108781 APK安装包下载:点击这里 http://pan.baidu.com/s/1jGoTs2q 应用预览:

小学二年级四则运算题

一.题目要求 产生300道小学二年级的四则运算的数学题,减法不能出现负数,除法要整除. 二.编写过程 编写产生30道小学二年级的四则运算的数学题,用rand()产生随机数,和随机的符号,在除法运算中在被除数不为零的情况下利用一组随机数来产生被除数和除数是被除数的整数倍,这样保证了除法的整除,减法要先判断两个随机数的大小,输出的结果为大数减去小数.然后利用for循环30次输出30道题目. 三.程序运行 四.程序代码 #include<stdio.h>#include<stdlib.h>