算法案例(3)
分层训练
1、阅读下列代码,写出该代码的运行结果
p←20
m←2
do
p←p-m
m←m+3
Until m>p
Print m
思考运用
2. 设计求解不定方程
()的一个算法,(提示:可用循环语句或条件语句)
3.判断某年是否为闰年,要看此年份数能否被4整除,但又不能被100整除;或者看此年份数能否被400整除。画出上述算法的流程图,并写出伪代码。
4.函数与有三个交点(x1,y1),(2,4),(4,16),其中-1<x1<0。试用二分法求出x1近似值(误差不超过0.01)。
5、求满足不等式:1×2×3×┅×I<10000的最大正整数I,写出代码。
6、求出平方数小于1000的所有正整数的和,并写出代码。
探究拓展:
7. 要判断一个数x是否为质数,我们可以把它分别除以从2到x-1的每一个整数,如果都除不尽,则x为质数。要判断a是否能被b整除,只要看a/b是否等于Int(a/b),若相等则能整除。
下面是寻找3~100之内质数的一个算法的伪代码:
10 For x From 3 To 100
20 For I From 2 To x-1
30 If Int(x/i)=x/i Then GoTo 10
40 End For
50 Print x
60 End For
实际上,上述算法的运算次数较多,可以加以改进,首先,偶数不可能是质数,因此第1行的步长可改为2,其次,第2行中的x-1可以改为(为什么?)。
写出改进后的伪代码,你有寻找质数更好的方法吗?
8. 满足方程的一组正整数称为勾股数或商高数,试设计一个满足a≤30,b≤40,c≤50的勾股数的算法(写出算法步骤,画出流程图)。
9、输入一个数,将该数反向输出(如1234→4321)。写出一个解决该问题的算法,并用伪代码表示。
|