老师出了一道奥数题,钱包里有一张100元,想将100元换成若干张1元、5元、10元的零钱,要求保证每种纸币至少有一张,且轉换之后的金额也是100元。请问转换的方法一共有多少种,请全部列出来。
小明仔细地想了一下觉得金额转换的方法有很多种,如果单纯用手写出来的话太多而且容易遗漏,能不能用Scratch编程来自动罗列出所有组合呢。
截短的判断条件为:如果“变量1元+5*变量5元+10*变量10元=100”与“变量1元>0”与“变量5元>0”与“变量10元>0”那么执行
首先考虑到将100元转化为3种不同金额的纸币,所以先设置3个变量,分别是1元、5元、10元的张数和3个列表(列表用于存放相应张数的解)。设置各变量的初始值都为1,由于转化过程中,总金额数不能超过100元,所以可以确定最大循环次数,1元的循环次数为100次,5元的次数为20次,10元的次数为10次。
符合题目要求的条件判断为:“变量1元+5*变量5元+10*变量10元=100”即总金额等于100,且每种纸币的数目至少一张(即“变量>0”),4个条件需都满足所以用“与”相连。同时满足这些条件的解才能将转换的张数保存在列表中。
根据完成后的列表项目数可知,最终的转化可能性有81种。
小明将Scratch程序分享给了老师和同学们并且讲解了解题思路与过程,大家对他刮目相看。



