实验五

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

实验五常用数值计算算法及其程序

设计⑴

三、实验要求

1.程序均需在编译器中进行试验

2.实验完成后只需要上交源程序文件

3.源程序文件名均使用“5_题号.c”作为文件名,如5_1.c.

四、实验内容

1.输出所有满足以下条件的三位整数:该数是素数,该数的个位数字与十位数字之和被10除所得余数恰好是该数的百位数字。例如,293是素数并且(3+9)被10除的余数是2,因此293是满足条件的三位素数。

2.编程输出前5个默尼森数。P是素数且M也是素数,并且满足等式M=2P-1,则称M 为默尼森数。例如,P=5,M=2P-1=31,5和31都是素数,因此31是默尼森数。

3.输出所有满足下列条件的正整数对(a,b):a+b=99(只要求a

4.找出所有满足以下特性的六位整数:它是一个完全平方数(完全平方数是指该数是某个整数的平方),该数同时也是回文数(回文数是指该数等于它的反序数)。例如,698896是836的平方并且698896是回文数,因此698896是满足所给条件的六位整数。输出所有满足上述条件的六位整数。

5.把23本书分给甲、乙、丙、丁四人,要求这四人得到的书的数量至少为1本,但分别不得超过9本、8本、7本、6本,问有多少种不同的分法?并找出每种具体的分法。

6.按照规律生成并输出以下数列前20项的值:第一项和第二项为2、3,以后每个奇数编号项为前两项之和,偶数编号项为前两项之差(前项减后项)。输出结果:

2 3 5 -2 3 -5 -2 -3 -5 2 -3 5 2 3 5 -2 3 -5 -2 -3

7.采用递推法计算sinx幂级数展开式的近似值,当通项绝对值小于10-8时停止累加。

【测试数据】

当输入x=3.1415926时输出0.0,,当输入x=1.5707963时输出1.0

8.编程计算π的近似值,当最后一项近似1时停止计算。

π = 2

2222222212++∙+∙∙

五、难点提示

1.运行结果:

101 211 239 257 293 349 367 431 523 541 569 587 743 761 853 本题的算法思路很清晰,遍历所有的三位数,判断其是否是素数,如果是则继续执行后续操作,即将数各位分离判断其是否满足条件,如果满足则输出该数。

2.运行结果:

3 7 31 127 8191

算法提示:

⑴ 设定初值p=2,c=5;

⑵ 当c>0时重复执行以下两步操作:

① 若p 和m (m=2P -1)都是素数,则输出m 且c-1→c

② p+1→p

3.运行结果:

(3,96) (6,93) (9,90) (12,87) (15,84) (18,81) (21,78) (24,75) (27,72) (30,69) (33,66) (36,63) (39,60) (42,57) (45,54) (48,51)

算法提示:

⑴ a=1

⑵ 当a<50 时重复执行以下操作:

① 99-a →b

② 求a 和b 的最大公约数c (利用辗转相除法)

③ 若c 是3的倍数则输出a ,b

...!

7!5!31sin 7

53x x x x x -+-=

④ a+1→a

要注意的是,辗转相除法求最大公约数时两个数的值会被不断替换成新值,而这里由于原先的a 、b 值需要继续使用,所以要注意不要改变a 和b 的值。

4.判断一个数是否是完全平方数较简单的方法是逆向判断。一个六位数可以大致判断其是(300,1000)之间的某个整数的平方,所以循环条件可以使用for(i=300;i<=1000;i++),同时在循环内判断i*i 是否是一个六位数即可;而判断一个数是否是回文数只要判断该数和其反序数是否相同,求一个数的反序数前面已经涉及过。另外本题还需要注意整数的溢出问题,要设计好哪些变量用int 类型,哪些变量用long int 类型。

5.提示:共115种。本题与“百钱买百鸡”和“一元人民币兑换”等问题都属于经典的穷举问题。只要定义4个变量分别代表甲、乙、丙、丁四人分到的书的数量,然后根据要求设定4个变量的范围用循环表示出来即可。

6.算法提示:

⑴ 用n1和n2分别保存数列前两项的值并输出;

⑵ 用循环语句控制重复执行18次以下操作:

若是数列奇数编号项则n1+n2→n3,否则n1-n2→n3,输出n3,n2→n1, n3→n2

7.分析sinx 级数展开式中每项的构成找到其级数生成规律:

a 0 = x

)

12(22

1+⋅-=-n n x a a n n ( n=1,2,3,4…) 同样根据生成规律用累加方法实现即可,注意n 的值需要不断加1,否则会造成死循环。

8. 与前一题类似,只要找出前后项之间的关系即能方便地写出程序。

相关文档
最新文档