6.利用辗转相除法或更相减损术求324,243,135的最大公约数.
5.设计求被9除余4,被11除余3的最小正整数的算法,画出流程图,写出伪代码.
4.若一个数的各因子之和正好等于该数本身,则该数成为完数.请补充完整下列找出1-100之间的所有完数的伪代码.
For
from 2 to 100
![]()
For b from 2 to
If mod(a,b)=0 Then
End if
End For
If Then
Print a
End if
End For
End
3.下面程序功能是统计随机产生的十个两位正整数中偶数和奇数的个数,并求出偶数与奇数各自的总和.
For I from 1 to 10
![]()
Print x;
If Then
![]()
Else
![]()
End If
End for
Print
“奇数个数=”;
,“偶数个数=”;![]()
2.用辗转相除法求52与39的最大公约数的循环次数为( ).
A.1次 B.2次 C.3次 D.5次
1.以下短文摘自古代《孙子算经》一书,其引申出的“大衍求一术”称为“中国剩余原理”:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”答曰( ).
A.二十一 B.二十二 C.二十三 D.二十四
[例1]
,
,
,
7=
.
A.16,-1,4,3 B.15,0,4,3 C.15,-1,3,4 D.15,-1,4,3
错解:根据
表示不超过
的整数部分,
表示
除以
所得的余数,选择B.
错因:对
表示的含义理解不透彻,将不超过-0.05的整数错认为是0,将负数的大小比较与正数的大小比较相混淆.
正解:不超过-0.05的整数是-1,所以答案为D.
[例2] 所谓同构数是指此数的平方数的最后几位与该数相等.请设计一算法判断一个大于0且小于1000的整数是否为同构数.
错解: 算法思想:求出输入数的平方,考虑其个位或最后两位或最后三位与输入数是否相等,若相等,则为同构数.
Read x
![]()
If
or
or
Then
Print x
End if
End
错因:在表示个位或最后两位或最后三位出现错误,“/”仅表示除,y/10,y/100,y/1000都仅仅表示商.
正解:可用
来表示个位,最后两位以及最后三位.
Read x
![]()
If
or
or
Then
Print x
End if
End
[例3]《孙子算经》中的“物不知数”问题:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”可以用下面的算法解决:先在纸上写上2,每次加3,加成5除余3的时候停下来,再在这个数上每次加15,到得出7除2的时候,就是答数.
试用流程图和伪代码表示这一算法.
解:流程图为:
![]()
伪代码为:
10
20 ![]()
30 If
Then Goto 20
40 If
Then
Print ![]()
Goto 80
50 End if![]()
60
70 Goto 40
80 End
点评:这是孙子思想的体现,主要是依次满足三个整除条件.
[例4]分别用辗转相除法、更相减损法求192与81的最大公约数.
解:辗转相除法:
S1 ![]()
S2
![]()
S3
![]()
S4
![]()
S5 ![]()
故3是192 与81 的最大公约数.
更相减损法:
S1
![]()
S2 ![]()
S3 ![]()
S4 ![]()
S5 ![]()
S6 ![]()
S7 ![]()
S8 ![]()
S9
![]()
故3 是192与81的最大公约数.
点评:辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少.辗转相除法是当大数被小数整除时停止除法运算,此时的小数就是两者的最大公约数,更相减损术是当大数减去小数的差等于小数时减法停止,较小的数就是最大公约数.
[例5]为了设计用区间二分法求方程
在[0,1]上的一个近似解(误差不超过0.001)的算法,流程图的各个框图如下所示,请重新排列各框图,并用带箭头的流线和判断符号“Y”、“N”组成正确的算法流程图,并写出其伪代码.(其中
分别表示区间的左右端点)
![]()
图13-3-2
流程图为
图13-3-3
伪代码为
10 Read ![]()
20 ![]()
30 ![]()
40 ![]()
50 If
Then Goto 120
60 If
Then
70 ![]()
100 End if
80 Else
90 ![]()
100 End if
110 If
Then Goto 20
120 Print ![]()
130 End
点评:二分法的基本思想在必修一中已渗透,这里运用算法将二分法求方程近似解的步骤更清晰的表述出来.
[例6] 用秦九韶算法计算多项式
在
时的值时,
的值为
.
解: 根据秦九韶算法,此多项式可变形为![]()
按照从内到外的顺序,依次计算一次多项式当
时的值:
![]()
![]()
![]()
![]()
故当
时多项式的值为
.
点评:秦九韶算法的关键是n次多项式的变形.
把一个
次多项式
改写成
,求多项式的值,首先计算最内层括号内一次多项式的值,然后由内向外逐层计算一次多项式的值,这样把求
次多项式的值问题转化为求
个一次多项式的值的问题,这种方法成为秦九韶算法.这种算法中有反复执行的步骤,因此,可考虑用循环结构实现.
4.用二分法求方程近似解,必须先判断方程在给定区间[
]上是否有解,即
连续且满足
.并在二分搜索过程中需对中点处函数值的符号进行多次循环判定,故需要选择结构、循环结构,即可用Goto 语句和条件语句实现算法.
3.辗转相除法与更相减损术求最大公约数的联系与区别:
(1)都是求最大公约数的方法,计算上辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少,特别当两个数字大小区别较大时计算次数的区别较明显.
(2)从结果体现形式来看,辗转相除法体现结果是以相除余数为0则得到,而更相减损术则以减数与差相等而得到.
2.
表示
除以
所得的余数,也可用
表示.
湖北省互联网违法和不良信息举报平台 | 网上有害信息举报专区 | 电信诈骗举报专区 | 涉历史虚无主义有害信息举报专区 | 涉企侵权举报专区
违法和不良信息举报电话:027-86699610 举报邮箱:58377363@163.com