当前位置: 首页 > ai >正文

Scratch——第20课 辗转相除法/绳子算法

辗转相除法是用于求取最大公约数时需要用到的方法,它还有个名字称为绳子算法,这类题目只要理解辗转相处的原理即可拿下。

一、辗转相除法的基本原理

两个整数的最大公约数不变,当较大数减去较小数后,得到的差值与较小数的最大公约数相同。以下是算法的步骤:

1.设两个正整数 a 和 b ,且 a > b 。

2.用 a 除以 b ,得到余数 r (0 < r < b) 。

3.如果 r 为 0 ,则 b 即为两数的最大公约数。

4.如果 r ≠ 0 ,则令 a = b , b = r ,并返回第二步。

这个过程将不断重复,每次都会产生一个更小的正整数,直到余数为 0 ,此时的 b 就是最大公约数。

二、往年题目

1.(CIE-202203)求最大公约数

1.准备工作

(1)保留默认白色背景和小猫角色。

2.功能实现

(1)输入两个正整数;

(2)小猫说出这两个数的最大公约数。

解题思路:

第①步:通过询问得到两个整数,运用询问,第二次的回答将顶替掉第一次的回答,那么可以通过变量的设置,然后让回答存储到相对应的变量中

第②步:判断a是否大于b,如果不满足,那么变量进行交换,在交换的过程中,需要一个中介的变量,要不然待会无法完成交换的操作(详细的原因可以看第13课的变量互换)

第③步:用 a 除以 b ,得到余数c (0 <c < b),将得到的余数进行判断,是否等于0,等于0,跳出循环,这时可以运用(这个命令是重复执行直到满足条件就跳出循环,不满足条件就继续循环的操作),那么条件就是

第④步: 若余数c不等于0,那么令 a = b , b =c,并继续相除 

第⑤步:余数等于0停止循环,输出最大公约数

整合代码:

2.(CIE-202104)绳子算法

故事情境:最近在学绳子算术的小星星非常苦恼,他常常在想,如果有一款程序能实现根据输入的两根绳子长度,可以把两根长绳截成长度相等的小段后,直接求出一共可以截成多少段,每段最长多少米就好了。小猫知道后,决定设计一个程序帮助小星星走出绳子算术的困境。

1.准备工作

(1)保留舞台默认白色背景及小猫角色,将小猫角色调整到舞台上合适的位置;

(2)建立名为“绳子”的列表用于存储数据。

2.功能实现

(1)点击绿旗,询问“输入绳子长度”并等待;

(2)将输入的绳子长度保存到列表“绳子”后,小猫分别说两根绳子的长度3秒;

(3)根据输入的两根绳子长度,设计算法实现:把两根长绳截成长度相等的小段。求出一共可以截成多少段,每段最长多少米;

(4)计算完成后,小猫分别说“一共可以截成多少段,每段最长多少米。”3秒。

解题思路:

第①步:询问“输入绳子长度”并等待,将得到的回答插入到列表中

第②步:将两条绳子的长度说出来,那么这时候,可以让其变量等于第一项和第二项,然后运用字符串拼接的方法,说出两根绳子的长度

第③步:用 绳子1除以绳子2,得到余数t (0 <t < b),将得到的余数进行判断,是否等于0,等于0,跳出循环,这时可以运用(这个命令是重复执行直到满足条件就跳出循环,不满足条件就继续循环的操作),那么条件就是

第④步: 若余数t不等于0,那么令绳子1=绳子2, 绳子2=t,并继续相除 

第⑤步:余数等于0停止循环,输出最大公约数​​​​​​​

第⑥步:接着,计算段数,最后运用拼接字符串的方法说出每段最长和段数

整合代码:

http://www.xdnf.cn/news/2617.html

相关文章:

  • GitLab CVE-2024-12444 安全漏洞解决方案
  • 劳动节ppt免费下载,劳动节ppt模板,劳动节课件
  • 配置电子邮件服务
  • LabVIEW开发之困境中逼出成长力
  • MCP之二_服务器与客户端实现
  • 抱佛脚之学SSMAOP
  • 【AI News | 20250428】每日AI进展
  • 国内比较好用的代理IP测评
  • C++——哈希表
  • Debian10系统安装,磁盘分区和扩容
  • redis未授权访问漏洞学习
  • 38、Python协程与任务调度高级技巧:从异步IO到分布式实践
  • 《Windows系统Java环境安装指南:从JDK17下载到环境变量配置》
  • 第十一节:性能优化高频题-响应式数据深度监听问题
  • centos7使用yum快速安装Docker环境
  • 使用腾讯地图检索地点
  • [蓝桥杯刷题]---模拟法[2]日期问题
  • 人工智能数学基础(二):初等数学
  • 光流法:从传统方法到深度学习方法
  • 【爬虫】码上爬第1题:动态数据采集
  • [密码学实战]SDF之密钥管理类函数(二)
  • [Agent]AI Agent入门02——ReAct 基本理论与实战
  • Python爬虫技术全解析:从入门到实战的终极指南大纲(深度解读与扩展)
  • Redis 小记
  • 架构风格对比
  • 探索 Redis 缓存对系统性能的提升——项目启动与操作指南
  • Vue:mixin详解
  • 第十二届蓝桥杯 2021 C/C++组 卡片
  • 分发糖果(困难)
  • Centos小白之在CentOS8.5中安装Rabbitmq 3.10.8