南昌大学C++实验报告(5)

上传人:lil****ar 文档编号:272057492 上传时间:2022-04-01 格式:DOC 页数:4 大小:182.50KB
返回 下载 相关 举报
南昌大学C++实验报告(5)_第1页
第1页 / 共4页
南昌大学C++实验报告(5)_第2页
第2页 / 共4页
南昌大学C++实验报告(5)_第3页
第3页 / 共4页
南昌大学C++实验报告(5)_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《南昌大学C++实验报告(5)》由会员分享,可在线阅读,更多相关《南昌大学C++实验报告(5)(4页珍藏版)》请在金锄头文库上搜索。

1、南昌大学实验报告 -(5)函数及其应用学生姓名: 学 号: 专业班级: 实验类型: 验证 综合 设计 创新 实验日期: 实验成绩: 一、实验目的(1)掌握函数定义、调用、函数间的数据传递和返回值等语法规则。(2)掌握函数的嵌套调用和递归调用的方法。(3)掌握全局变量和局部变量的概念和使用方法。二、实验内容(1)编写一个判断素数的函数,并利用该函数验证哥德巴赫猜想(即1个大于2德偶数必能分成2个素数)。(2)用递归函数求十进制对应的二进制。(3)输入n,使用全局变量和静态变量计算:。三、实验要求1、需写出设计说明;2、设计实现代码及说明3、运行结果;四、主要实验步骤1.在编辑器中编写C+源代码。

2、2.通过g+编译器进行编译,编译器报错,根据错误提示修改源代码。3.运行实验,记录结果五、实验数据及处理结果#include#includeint isSu(int a);int main()using namespace std;int num;coutnum;for(int i = 2;i=num/2;+i)if(isSu(i) & isSu(num-i)coutThe two numbers are: i num-iendl;return 0;int isSu(int a)for(int i = 2;i=sqrt(a);+i)if(a%i = 0)return 0;return 1;-本

3、题最核心的问题在于如何判断一个数字是素数:除了1和它本身,不能被其他的数据整除。在编写程序时,可以利用穷举的方法来一一进行验证,一个数a要能分解为mn,再进一步,我们可以得到这样的结论,如果a不是素数,则有a=ma/m,m存在。利用for循环,根据乘法的对称性,验证2根号a即可。根据加法的对称性,逐一验证2x/2是否为素数就能判断偶数x是否可以分解为两个素数。#includeusing namespace std;void changeBase(int a);int main() int num; coutnum; changeBase(num); coutendl; return 0;voi

4、d changeBase(int a) if(a2) couta; return; changeBase(a/2); couta%2;-本题使用递归方法将一个十进制数转化为2进制数输出,相比之前用循环和数组的做法,递归方法思路更加清晰,但是构建递归函数是一个难点,同时,递归的效率也不是特别好。关于递归的使用,将在总结中详细讨论。#includeint calculate(int n);int main() using namespace std; int n; coutn; coutThe result is: calculate(n)endl; return 0;int calculate(

5、int n) static int i = 1; int part1 = 1,part2 = 0,total = 0; for(;i=n;+i) part1 *= i; part2 += i; total += (part2 * part1); return total;-本题的计算涉及到很多重复的步骤,累加,累乘。计算第n个累加/累乘,可以在前n-1次的累加/累成结果上再计算一个n即可(累加加上n,累乘乘以n)。而不用再次重新重1开始计算表达式的值。根据这个思路,改进算法,使得表达式的计算在一次for循环中解决,不用编写专门的函数来计算每一个部分。这样计算的复杂度大大降低了。六、实验体会或对

6、改进实验的建议这次实验我们学习了C/C+中函数的使用,与前面的循环功能类似,函数也可以减少重复代码的编写,相比循环,函数的封装性更好,将独立的某一项功能封装在一个函数中,使用时进行调用,将参数设置正确即可,将函数的使用和定义分离使得main函数看起来更加清爽,便于代码的维护和修改。函数设计中,最难的问题在于递归函数的设计,并不是所有的功能都能用递归完成。1. 递归使用时要知道函数退出的条件,函数自身调用自身,在某个条件下函数应该能够终止。2. 函数计算规模的简化:使用递归时,函数完成的应该是相同的功能,只是函数的计算规模不同,随着递归深度增加,函数的计算规模逐渐减小,甚至能够直接给出结果。七、参考资料C/C+程序设计(第二版)张树粹主编

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号