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

yumo6662个月前 (06-17)技术文章9

一道看似简单实则困难的数学题的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软件,能提高自我创造能力和问题解决能...

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

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

打地鼠小游戏制作教程

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

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

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

Scratch编程 + 数学 的课程设计

徐老师编程课堂:适合scratch编程 结合学科知识,在学习编程的过程中掌握数学知识,摆脱图形化编程只能做游戏的层次...