一道看似简单实则困难的数学题的Scratch编程解法

一道看似简单实则困难的数学题的Scratch编程解法

题目是这样的:将一个正整数的个位放到首位,变成原来的2倍,求满足条件的最小正整数。

题目的意思很简单,小学生都能读懂,比如原数为357,将个位7放到首位,就变成735。很显然,735并不等于357的2倍(714),所以357不符合要求。我们容易验证所有的一位数和二位数都不符合要求。怎么求呢?

(一)算法分析

难点在于我们不确定它是几位数,难道只能从3位数开始,从小到大逐一穷举验证?那工作量可就太大了!要解决这个难题,运用数学知识(算法)筛选,缩小范围,就显得尤其重要。

我们先从验证二位数开始,看符合条件的数具有什么特殊性。

假如这个数是两位数X=ab,即个位是b,十位是a(X=10a+b),要满足题目条件,则有ba=2ab,即10b+a=2(10a+b),进而19a=8b,这里a和b都是非0的一位数,很显然无论b是1,2,…,9中的哪一个,8b都不是19的倍数,所以满足条件的a,b不存在。

将上述比较方法推广到n位数,这里n≥3。假设这个数为:



(二)编程实现

1.首先建立一个计算方幂的子程序:

2.建立一个找出最小n值得子程序:

3.根据找出的最小n值,求出Y值,建立将b从小到大验证符合条件的最小数。

由于Scratch内置的计算程序的精度有限,我们使用了自定义的大数乘法子程序和字符串处理,大数乘法子积木很繁杂,不展示直接用。

3.结果显示:

相关文章

Scratch少儿编程进阶篇12-超简单趣味贪吃蛇

超简单趣味贪吃蛇—Scratch少儿编程进阶篇前言进阶篇是Scratch编程的综合应用,通过进阶篇的内容,希望大家能够有以下三个方面的收获:1. 通过Scratch软件,能提高自我创造能力和问题解决能...

Scratch编程小游戏汉诺塔 万万没想到

万万没想到用Scratch编程做的汉诺塔居然这么好玩。这是一个全自动的汉诺塔小程序,只需要在输入框里输入要移动的盘子数量,点击开始即可。整个小程序运行的非常流畅。这个小程序算是一个比较复杂的程序了,它...

Scratch2.0接苹果小游戏讲义整理

Scratch2.0接苹果小游戏概貌见动图:这又是一款经典的Scratch小游戏,是孩子们学习Scratch编程软件的良好载体,不容错过。(一)玩法说明接到慢速的红苹果一个加1分;接到中速的红苹果一个...

打地鼠小游戏制作教程

打地鼠这个小游戏貌似比我的年龄都要大,这次我们使用scratch3.0图形化编程软件来制作一款我们自己的“打地鼠”。 我们先准备4样角色,分别是:地鼠角色、锤子角色、地洞角色、草地角色。 地鼠→使用猫...

编程与数学:在Scratch里画围棋棋盘

围棋棋盘是19×19,也就是纵、横都是19条线。程序的第一个循环是先画19条横线。循环前先将画笔定位到舞台的左下角。做画笔定位前,必须先抬笔!定位后再落笔。否则,会画出一条多余的线。循环是自下而上画横...

Scratch3.0外观模块前十个积木指令讲解

外观模块 Scratch外观模块下面正常显示的有20个积木,但是还有19个隐藏积木;由于积木较多,涉及的知识点较广,一次性讲完小朋友们消化不了;所以我们今天只讲解前十个正常显示的积木指令;他们分别是:...