ID: 8477333

粤教版(2019)信息技术 必修1 4.4.3 循环嵌套的应用 课件(20张ppt)

日期:2025-04-20 科目:信息技术 类型:高中课件 查看:77次 大小:956300B 来源:二一课件通
预览图 1/9
教版,2019,信息技术,必修,4.4.3,循环
  • cover
4.4.3循环嵌套 百钱百鸡问题 今有鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。凡百钱买鸡百只。问鸡翁母雏各几何? 【故事】 相传在南北朝时期(公元 386 年———公元 589 年),我国北方出了一个“神童”,他反映敏捷,计算能力超群,许多连大人一时也难以解答的问题,他一下子就给算出来了。远远近近的人都喜欢找他计算数学问题。 “神童”的名气越来越大,传到当时宰相的耳中。有一天,宰相为了弄清“神童”是真是假,特地把“神童”的父亲叫了去,给了他 100 文钱,让第二天带 100 只鸡来。并规定 100 只鸡中公鸡、母鸡和小鸡都要有,而且不准多,也不准少,一定要刚好百钱百鸡。 当时,买 1 只公鸡 5 文钱,买 1 只母鸡 3 文钱,买 3 只小鸡才 1 文钱。怎样才能凑成百钱百鸡呢?“神童”想了一会,告诉父亲说,只要送 4 只公鸡、 18 只母鸡和 78 只小鸡就行了。 第二天,宰相见到送来的鸡正好满足百钱百鸡,大为惊奇。他想了一下,又给了 100 文钱,让明天再送 100 只鸡来,还规定不准只有 4 只公鸡。 这个问题也没有难住“神童”。他想了一会,叫父亲送 8 只公鸡、 11 只母鸡和 81 只小鸡去。还告诉父亲说,遇到类似问题,只要怎样怎样就行了。第二天,宰相见到了送来的 100 只鸡,赞叹不已。他又给了 100 文钱,要求下次再送 100 只鸡来。 岂料才一会儿,“神童”的父亲就送来了 100 只鸡。宰相一数:公鸡 12 只、母鸡 4 只、小鸡 84 只,正好又满足百钱百鸡……。 这个“神童”就是张丘建。他继续勤奋学习,终于成为一个著名的数学家。他的名著《张丘建算经》里,最后一个题目就是这个有趣的“百鸡问题”。 设计算法 算法描述: ①令a=1 ②令b=1 ③令c=3 步长:3 ④如果a+b+c=100(式子1)且5a+3b+c/3=100(式子2),那么输出a,b,c,若不是则转⑤ ⑤如果c<100,则c+3 返④ ⑥如果b<33,则b+1返③ ⑦如果a<20 ,则a+1返② ⑧结束 for 循环变量 in 列表: 语句或语句组 单循环: while (表达式): 语句或语句组 单独使用for 循环和while 循环,往往无法解决复杂的问题。如需要解决类似”工作要做很多遍,而每一遍都是需要重复做一些事情”的问题,就要用到多重循环,即”循环嵌套”。如果某一种循环语句中包含着自身或其他循环语句,就称为循环的”嵌套”。for循环和while 循环之间可以相互嵌套。 for a in range(1,20): for b in range(1,33): for c in range(3,100,3): if (a + b + c == 100) and (5 * a + 3 * b + c / 3 == 100) : print ("公鸡a={}, 母鸡b={}, 小鸡c={}".format(a,b,c)) 编程:百钱百鸡问题 所有的情况都考虑到了吗?有没有遗漏?循环多少次?效率高吗? 问:我们可以用几种方法来解决这个问题呢? 三种 1.用三重循环来做(1种方法) 2.用二重循环来做,判断条件可以用式子1 或式子2。(2种方法) 方法 2: for a in range(1,20): for b in range(1,33): c=100-a-b (利用式子1得到) if 5 * a + 3 * b + c / 3 == 100 : print ("公鸡a={}, 母鸡b={}, 小鸡c={}".format(a,b,c)) 问:我们可以用几种方法来解决这个问题呢? 三种 1.用三重循环来做(1种方法) 2.用二重循环来做,判断条件可以用式子1 或式子2。(2种方法) 方法 3: for a in range(1,20): for b in range(1,33): c=3*(100-5*a-3*b )(利用式子2得到) if a + b + c == 100 : print ("公鸡a={}, 母鸡b={}, 小鸡c={}".format(a,b,c)) 如果一个三位数等于它的各位数字的3次方各,则这个3位数称为“水仙花”数,例如153=13+53+33。试编写程序求出所有的水仙花数。 任务:水仙花数问题: 大展身手 任务:水仙花数问题 for a in range(1,10): for b in range(0,10): for c in range(0,10): n = a *a*a + b*b*b + c*c*c If n ==a * 100 + ... ...

~~ 您好,已阅读到文档的结尾了 ~~