scratch数字之谜——列出个、十、百位不同数

题目要求:有一个三位数,其中个位、十位、百位均为1、2、3、4,四个数字中随机一个数字,同时个位、十位、百位数字中任何两个数字都不能相同,列出所有满足这个条件的数字。

file

解题思路:

首先我们知道这是一个循环嵌套问题,我们将这个数学问题想象成一个现实问题,假设我们去打扫一个楼的卫生,这个楼一共4层,每层有4个房间,每个房间有4个床铺,我们需要清理每个床铺,那么我们就需要从第一层,第一个房间,第一个床铺开始清理:

file

如上图:最里面的循环就代表了房间中的床铺,那么我们经过了4次循环(每次循环变量c增加1,也就是换到该房间的第2个床铺),把第一间房间的4个床铺都清理干净了,然后返回到第2个循环,通过房间数+1(变量b增加1)也就是换到第二个房间,然后在这个房间里再进行床铺的循环.. …最终我们清理完了所有的楼层中的所有房间中的所有床铺。根据题目要求,楼层数、房间数和床位数相同的要去掉,这样我们加入一个条件语句:

file

我们将符合条件的数字加入到链表中,这样我们顺利地求出了符合要求的数字:

file

黔西南 触摸未来
我们正身处一个只要愿意思考,就能改变世界的时代