一、三重循环与程序的优化
教学视频
百钱买百鸡
3文钱可以买1只公鸡,2文钱可以买1只母鸡,1文可以买3只小鸡,要用100文买100只(每种鸡必买1只)。
试编一程序,求公鸡,母鸡、小鸡各有多少只?
如果100文钱全部买公鸡,最多可以买儿?33只;如果100文钱全部买母鸡,最多可以买几只?50只;如果100文全部买小鸡,最多可以买几只?300只?不对,鸡一共有100只。所以小鸡最多是100只。可以用枚举法,依次枚举每种鸡的只数,如果同时满足“百钱”“百鸡”两个条件。那么就输出每种鸡相应的只数。
公母+母鸡+小鸡=100只
买公鸡的钱+买母鸡的钱+买小鸡的钱=100文
三重循环执行:33x50x100=165000次
请对上述算法进行优化简化为双重循环
二、四重循环
教学视频
问题:
三、超市收费程序
教学视频
比特超市是风之巅小学的同学们用比特童币换购商品的地方,每个月最后一周的周五12:00到12:40开放、由同学们轮流经营。为了能自动算出每位来换购的同学应付的货款,自动算出超市一天的营业额,自动统计一天换购的人数,需要一个简易的超市收费程序。
试编一个超市收费程序,实现上述功能。
超市一天来多少位同学是不确定的,可以用一个结束标志来检查是否一天结束了。每位同学换购的商品种类也不一样,可以在每位同学换购结束时输入一个特殊的数作为结束标志。同时需要设两个累加器,一个累加每位同学应付的贷款,一个累加一天的营业额。设一个计数器,记录换购的人数。
n为每个物品的价格,用素加器sumone累加一位同学应付的货款,用累加器sum累加一天的营业额,用计数器num统计一天换吻的人数。当输入0时为一个人结束,当输入-1时为一天结束。流程图如图