从学生思维角度出发,深度解析“数字黑洞153”

2022-03-24 05:06周明凤
电脑报 2022年10期
关键词:末尾倍数列表

周明凤

在眉山市首届创意编程大赛中,出现了这样一道操作题:

“数字黑洞153”又叫作“圣经数”,这个奇妙的数字黑洞是一个叫科恩的以色列人发现的。数感极好的科恩无意中发现153是3的倍数,并且它的各位数字的立方和仍然是153。无比兴奋之余,他又用另外一些3的倍数来做同样的运算,最后得数也都是153。于是科恩就把他发现的这个数字称为“圣经数”。圣经数(数字黑洞153 )的规则如下:任意取一个是3的倍数的自然数,求出这个数各个数位上数字的立方和,得到一个新数;然后再求出这个新数各个数位上数字的立方和,又得到一个新数。重复运算下去,最后一定会掉入数字黑洞153之中。

例如:69是3的倍数,按照数字黑洞153的规则,它的变换过程如下:

6^3+9^3=945

9^3+4^3+5^3=918

9^3+1^3+8^3=1242

1^3+2^3+4^3+2^3=81

8^3+1^3=513

5^3+1^3+3^3=153

注:“^”表示次方,例如6^3表示6的3次方,即6×6×6。

程序要求:

1.创建一个“数字黑洞153”有参函数,参数为“自然数”。

2.程序开始时,先询问用户想验证的自然数(必须是3的倍数)是多少。如果用户输入的自然数是3的倍数,就调用“数字黑洞153”函数,同时将该数字作为函数的参数,否则就提示用户重新输入一个3的倍数。

3.对“数字黑洞153”函数体编程,按照数字黑洞153的规则对输入的数字进行运算,并将计算的过程保存到列表中,直到达到153为止。

例:当用户输入69时,则程序结束时列表中应该依次存在数字:69,945,918,1242,81,513,153。

1.根据操作题的程序要求,我们首先确定是程序有一个交互的对话界面,然后对输入的数做出判断,根据判断提示用户输入的数据是否合法。这样就需要设置一组“询问”,设置一组判断“如果数字能被3整除,或者获得的答复除以3的余数为0”:如果满足条件,就调用“数字黑洞153”函數,同时将该数字作为函数的参数,否则程序“重启”就提示用户“重新输入一个3的倍数”。

2. 新建一个“变量”对应用户输入的数据(获得答复),新建一个“数字黑洞153”的函数体按照数字黑洞153的规则对输入的数字进行运算,新建一个列表来存储和显示运算结果。

3.计算数字的立方和时必须考虑到数字的位数及数字的字符串的位置,设置好相应的变量。将获得答复的数字插入到列表末尾,且将上组数字运算生成的立方和插入到列表末尾,以方便程序进行下一次的运算,直到满足出现“153”为止。

4.可以运用计算工具直接计算输入数字的立方和。

5.采用递归策略计算后期出现数字的立方和。

6.设置“数字黑洞153”的函数体退出循环的条件。

1.打开图形化编程软件后导入相应的背景和角色。新建变量和列表如图1。函数体如图2。

2.搭建程序运行交互,如图3。

3. 搭建“数字黑洞153”的函数体一,按照规则对输入的数字进行运算,如图4。

此函数体根据计算数字立方和规则,把变量“数=153”作为程序运行终止的条件,如图5。

依据题意,数字立方和的最大位数是4位,所以利用图6的几个积木直接搭建了4位数字立方和相加的计算公式,如图7。

通过上面的程序搭建,初步完成了第一组数字立方和的运算。由于设置了“列表01”中如果出现了“153”这个数的条件,程序就停止运行,那么我们就应该想到:如果没有出现数字“153”,是不是应该将上组运算的数字“插入到列表01的末尾”呢?然后再将此数代入图7中变量“数”进行运算,让程序再一次循环运行,一直到满足“重复执行直到‘数=153’”这一条件。设置“如果‘列表01中包含变量数’不成立”,添加变量“数”到列表01末尾,“设置变量‘数’的值为‘数’”,进行下组数的运算。如图8红圈中的程序。

4.利用递归策略搭建“数字黑洞153”的“函数体二”。

图9程序运用了递归策略计算数字各位数的立方和,建立了“和、数位”变量,将上组运算得出的立方和作为“自然数”通过在“数字黑洞153”的函数体中调用本函数体再次循环运算。函数体二中将函数参数“自然数”添加到“列表01”末尾,“自然数=153”作为脚本停止运行的条件。将变量“和”作为“数字黑洞153”的函数体内再次调用本函数体的参数,采用尾递归的方式实现了程序的循环运行,如图9。

“数字黑洞153”的函数体一和“数字黑洞153”的函数体二的计算思维都非常清晰、合理,程序运行的效果都满足了本题的程序要求。

猜你喜欢
末尾倍数列表
“0”的读法和要领
扩列吧
倍数魔法
列表法解分式方程问题探索
蜕皮的季节
Playing with“tl”
如何表达常用的倍数
列表画树状图各有所长
关于“3与9的倍数特征”引起的思考
数学题