算法描述-最大公约数

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1)、用自然语言描述算法; 例如:鸡兔同笼问题。35个头,94只脚。鸡兔各多少? 分析问题 设:鸡x,兔y;另:头数a,脚数b; x+y=a 2x+4y=b 解得:x=2a-b/2,y=b/2-a 鸡23只,兔12只。 设计算法 输入a和b的值 求x=2a-b/2 求y=b/2-a 输出x,y的值 结束
算法的地位:
在运用计算机程序解决问题的过程中,算法设计有着举足轻重的地位和作用,算法是程 序设计的核心,是程序设计的灵魂.算法的好坏,直接影响着程序的通用性和有效性,影 响着问题解决的效率. 程序的编制依赖于算法的设计。程序的效率主要取决于算法的效率。
m=n=6,n=r=3;即m←n的值6,n←r的值3。
6÷3=2……0,r=0算法结束,输出n即3,即最大公约数为3。
算法与程序设计
1、算法的概念
算法是在有限步骤内求解某一问题所使用的一组定义明确的规则。即,用计算 机求解某一问题的方法,是能被机械地执行的动作或指令的有穷集合。
算法的特征: 1)、有0或多个输入。解题算法中可以没有数据输入,也可以同时输入多个需 要算法处理的数据。 2)、确定性。解题方法中的任何一个操作步骤都是清晰无误的,不会使人产生 歧义或者误解。 3)、有穷性。任何一种提出的解题方法都是在有限的操作步骤内可以完成的, 哪怕是失败的解题方法。 4)、有1个或多个输出。一个算法执行结束之后必须有数据处理结果输出,哪怕 是输出错误的数据结果,没有输出的算法使毫无意义的。 5)、能行性。解题方法中的任何一个操作步骤在现有计算机软硬件条件下和逻 辑思维中都能够实施实现。
算法与程序设计
2、算法的描述 2)、用流程图描述算法: 掌握流程图的基本图形及其功能。 开始
1).输入m和n的值; 2).r=m除以n的余数; 3).如果r=0,则输出n值; 否则令m=n,n=r返回第2步; 4).结束.
输入正整数m和n r=m除以n的余数
r=0 是 输出n的值
结束

m=n, n=r
无论是使用自然语言还是使用流程图描述算法,仅仅是表述了编程者解决问题的一种思路, 都无法被计算机直接接受并进行操作。
伪代码通常采用自然语言、数学公式和符号来描述算法的操作步骤,同时采用计算机高级 语言(如C、Pascal、VB、C++、Java等)的控制结构来描述算法步骤的执行顺序。
算法与程序设计
答:112和64的最大公约数为______.
求最大公倍数?
练习:求164和64的最大公约数. 求256和24的最大公约数.
两数的最大公约数乘以其最小公倍数=两数相乘
例如:求112和64的最小公倍数. (1).利用辗转相除法求得它们的最大公约数为______; (2).利用表达式求得最小公倍数: 答: 112和64的最小公倍数为______.
结束
算法与程序设计
三种算法描述方式的优劣
优点 自然语言 不需专门训练,通俗易懂 缺点 P10
流程图
描述清晰简洁,容易表达选 择结构;利于不同环境的程 序设计.P11 书写方便,格式紧凑,易于理 解,便于向计算机程序设计 语言过渡.P12
无法被计算机直接接受并 进行操作
伪代码
种类繁多,语句不容易规范. P12
112÷64=1…48, 64÷48=1…16, 48÷16=3…0 112x64=7168, 7168÷16=448
练习:求164和64的最小公倍数. 求256和24的最小公倍数.
算法与程序设计
2、算法的描述
人的思想要用语言来表达。而算法则是人求解问题的思想方法,是对解题过程的精确 描述,同样也需要用语言来表示。表示算法的语言有自然语言、流程图、伪代码等。
(3)互换:令m=n,n=r,即m←n,n←r,并返回步骤(1)。
如:m=21,n=6;21÷6=3……3即r=3; m=n=6,n=r=3;即m←n的值6,n←r的值3。 6÷3=2……0,r=0算法结束,输出n即3,即最大公约数为3。
算法与程序设计
辗转相除法 具体过程如下: 设给定的两个正整数为m和n,求它们的最大公约数。步骤为: (1)以m除以n,即m÷n,令所得余数为r(0≤r<n)。 (2)若 r = 0,则输出结果n,n即为最大公约数,算法结束;否则继续步 骤(3)。 (3)互换:令m=n,n=r,即m←n,n←r,并返回步骤(1)。 如:m=21,n=6;21÷6=3……3即r=3;
算法与程序设计
使用自然语言描述算法的方法虽然比较容易掌握,但是存在着很大的缺陷。例如,当算法 中含有多分支或循环操作时很难表述清楚。另外,使用自然语言描述算法还很容易造成歧 义(称之为二义性),譬如有这样一句话——“武松打死老虎”,我们既可以理解为“武 松/打死老虎”,又可以理解为“武松/打/死老虎”。自然语言中的语气和停顿不同,就可 能使他人对相同的一句话产生不同的理解。又如“你输他赢”这句话,使用不同的语气说, 可以产生3种截然不同的意思,同学们不妨试试看。
算法与程序设计
算法与程序设计
2、算法的描述 3)、用伪代码描述算法。
wk.baidu.com
输入m和n值 r ←m Mod n do while r<>0 m=n n=r r=m mod n loop 输出n值
开始 输入正整数m和n r=m除以n的余数 1).输入m和n的值; 2).r=m除以n的余数; 否 m=n, n=r r=0 3).如果r=0,则输出n值; 是 否则令m=n,n=r返回第2步; 输出n的值 4).结束.
算法与程序设计
例如:求112和64的最大公约数.算法如下: (1).112除以64,余数为______; (2)._____除以_____余数为_______; (3)._____除以_____余数为_______.
112÷64=1…48, 64÷48=1…16, 48÷16=3…0 164÷64=2…36, 64÷36=1…18, 36÷18=2…0
算法与程序设计
1.2 算法和算法的描述
辗转相除法 又名欧几里德算法(Euclidean algorithm)是求两个正整数之最大公约 数的算法。它是已知最古老的算法, 其可追溯至前300年。它首次出现于欧 几里德的《几何原本》。
具体过程如下:
设给定的两个正整数为m和n,求它们的最大公约数。步骤为: (1)以m除以n,即m÷n,令所得余数为r(0≤r<n)。 (2)若 r = 0,则输出结果n,n即为最大公约数,算法结束;否则继续步骤(3).
相关文档
最新文档