- 算法案例
- 共287题
分别用辗转相除法和更相减损之术求下列两数的最大公约数.
(1)261,319;(2)1 734,816.
正确答案
解:(1)辗转相除法
319÷261=1(余58)
261÷58=4(余29)
58÷29=2(余0)
∴319与261的最大公约数是29.
更相减损之术:(261,319)→(261,58)→(203,58)→(145,58)→(87,58)→(29,58)→(29,29).
∴319与261的最大公约数是29.
(2)辗转相除法:
1 734÷816=2(余102),
816÷102=8(余0),
∴1 734与816的最大公约数是102.
更相减损之术:因为两数皆为偶数,首先除以2得到867,408,再求867与408的最大公约数.(867,408)→(459,408)→(51,408)→(51,357)→(51,306)→(51,255)→(51,204)→(51,153)→(51,102)→(51,51).
∴1 734与816的最大公约数是51×2=102.
[=HS(]对于第二个问题,用更相减损之术求解时,最后的结论有的同学可能会写成51,而没有乘以2,从而得出与用辗转相除法不一样的答案,51是它们的公约数,2也是它们的公约数,所以最大公约数就为51×2=102.
使用辗转相除法可依据m=nq+r,反复执行,直到r=0为止;用更相减损之术就是根据m-n=r,反复执行,直到n=r为止.
新课标要求学生数学模块学分认定由模块成绩决定,模块成绩由模块考试成绩和平时成绩构成,各占50%,若模块成绩大于或等于60分,获得2学分,否则不能获得学分(为0分).
设计一算法,通过考试成绩和平时成绩计算学分,并画出程序框图.
正确答案
见解析
(1)要注意写算法时,分几个步骤,每个步骤的功能要搞清楚.
(2)画程序框图时,要正确画功能框,不能搞混.
解:(1)算法步骤为:
第一步:输入考试成绩C1和平时成绩C2,…………………………….2分
第二步:计算模块成绩 …………………………….4分
第三步:判断C与60的大小,输出学分F
若,则输出F=2;
若,则输出F=0.…………………………….8分
(2)程序框图:(如图)
………………………….14分
转化为十进制为___________,转化为二进制为___________.
正确答案
78,1001110.
,
1001110
求324,243,135三数的最大公约数.
正确答案
324与243最大公约数为81.
135与81最大公约数为27.
∴324,243,135最大公约数为27.
同答案
某校高一(1)班有学生50人,数学测验后,需要计算该班的数学平均分,请你设计一个算法用框图表示,写出程序.
正确答案
解:程序:
S=0;
i=1;
while i<=50
CJ="input" (“CJ=”);
S=S+CJ;
i=i+1;
end
PJF=S/50;
PJF
程序框图:
人数较多,可用一个循环程序来完成,依次输入50个学生的成绩,并实现累加,累加之和除以50即为平均分.
用“辗转相除法”求得459和357的最大公约数是 .
正确答案
51
本题考查了求两个数最大公约数的方法(辗转相除法)。
解:
所以459和357的最大公约数是51
如图,在边长为4的正方形ABCD的边上有一点P,沿着折线BCDA由点B(起点)向点A(终点)运动.设点P运动的路程为x,△APB的面积为y,求y与x之间的函数关系式.并画出程序框图,写出程序.
正确答案
解析:(1)y=
程序框图如下图所示
程序:
x=input(“x=”);
if x>="0" and x<=4
y=2*x;
else
if x<=8
y=8;
else
y=2*(12-x);
end
end
print(%io (2),y);
略
一位商人有9枚银元,其中有1枚略轻的是假银元.你能用天平(无砝码)将假银元找出来吗?写出解决这一问题的算法.
正确答案
解:方法一:
S1 任取2枚银元分别放在天平的两边,如果天平左右不平衡,则轻的那一边就是假银元;如果天平平衡,则进行S2.
S2 取下右边的银元,然后把剩下的7枚银元依次放在右边进行称量,直到天平不平衡,偏轻的那一边就是假银元.
方法二:
S1 任取两枚银元分别放在天平的两端,如果天平左右不平衡,则轻的那一边是假银元;否则进行S2.
S2 重复执行S1,如果前4次天平都平衡,则剩下的那一枚是假银元.
方法三:
S1 把9枚银元平均分成3组,每组3枚.
S2 先将其中两组放在天平的两边,如果天平左右不平衡,那么假银元就在轻的那一组;如果天平左右平衡,则假银元就在未称量的那一组内.
S3 取出含有假银元的那一组,从中任取2枚银元放在天平左右两边进行称量,如果天平左右不平衡,则轻的那一边是假银元;如果天平左右平衡,则未称的那一枚就是假银元.
解决这个问题有很多方法,可以将9枚银元排成一列,拿一枚与余下的8枚进行依次比较;也可以每两枚比较一下;也可以将9枚银元平均分成3组,组与组之间比较.
将8进制数314706(8)化为十进制数.
正确答案
104902
314706(8)=3×85+1×84+4×83+7×82+0×81+6×80=104902.
所以,化为十进制数是104902.
点评:利用把k进制数转化为十进制数的一般方法就可以把8进制数314706(8)化为十进制数,然后根据该算法,利用GET函数,应用循环结构可以设计程序.
三个数72,120,168的最大公约数是_______________.
正确答案
24
试题分析:由“更相减损术”。(72,120)(72,48)
(48,24)
24;
(120,168)(120,48)
(48,72)
24,因此,三个数72,120,168的最大公约数是24.
点评:简单题,利用“更相减损术”或“辗转相除法”求最大公约数。
扫码查看完整答案与解析