scratch数字之谜——门牌号码

今天我们一起来完成一个关于门牌号码的题目,题目是这样的:小丽家的门牌号码是一个三位数,其中末位数字比首位数字要大,首位数字比中间数字大。这三个数字相加之和等于这三个数字相乘之积,问小英家的门牌号码是多少?

看到这个题目后,小朋友第一反应是什么?很多小朋友会马上就开始去试着找答案了,自己想一个号码,然后来看它对不对,这样一个一个试,其实在编程中也有一个类似的方法:穷举法,那么什么叫穷举法呢?穷举法是根据题目的部分条件确定答案的大致范围,并在此范围内对所有可能的情况逐一验证,直到全部情况验证完毕。若某个情况验证符合题目的全部条件,则为本问题的一个解;若全部情况验证后都不符合题目的全部条件,则本题无解。穷举法还有个名字叫枚举法。

这道题目利用“穷举法”比较简单,由末位数>首位数,首位数>中间数,所以可以在编程时可以设计一点技巧减少循环次数。我们再回忆一下列出个位、十位、百位不同数的题目,在原来的程序基础上稍作调整,很快我们就可以得出一个解决方案:

file

点击绿旗,我们很快求出了结果,对比一下列出个位、十位、百位不同数的题目,我看看有什么相同点和不同点?

file

file

“我发现了!这次我们把变量增加放在了后面。”

是的,那么同学们自己想想看,变量增加放到条件判断的后面和前面会有什么不同的结果呢?如果上次的题目我们也把变量增加放到条件判断的前面,你可以做到么?试试看!

“我还发现这次变量名字不一样!”

真是一个仔细的家伙!是的,我们这次变量命名用的是字母i、j、k,而且我们以后会发现很多人都会使用这些字母来为变量命名,那么这是为什么呢?

其实这是一种习惯,就像是学习编程第一个程序写“Hello World”一样,是一种习惯,当然了,使用i、j、k命名是由一个来源的:

这里我们就要提到FORTRAN语言了,FORTRAN语言是一种古老的语言,至今仍在使用,它是世界上最早出现的计算机高级语言。

在FORTRAN语言中,以字母’i’开头的变量名称定义的是整数。在后续的开发语言中,人们沿用了将嵌套的循环变量命名为i,j,k的通常做法。当然,如果你喜欢用a、b、c来代替i、j、k也没有任何问题。但是即使在今天,我们仍然习惯地以FORTRAN语言当初的约定,将整数变量名按字母顺序从字母’i’开始,所以同学们以后也可以尝试使用这样的命名惯例哦。

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