《ACM算法与数据结构设计》大作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《ACM算法与数据结构设计》课程大作业报告
题目:五位以内的对称素数
学生姓名
班级学号
学生学院计算机软件学院
学生专业计算机科学与技术
联系电话
电子邮
指导教师
指导单位计算机学院软件工程系
日期2011.5.24
注意事项
(1)课程大作业从《ACM算法与数据结构设计》课程实验二(2011年4月19日)或实验三(2011年5月10日)中任选一个课题完成。(2)课程大作业内容包括课题名称、课题内容和要求、课题分析、概要设计、详细设计、测试数据及其结果分析、调试过程中的问题、参考资料列表、课程小结等。
(3)课程报告可以打印,也可以手写,但前面两页内容、大作业撰写纲要、课程小结不可遗漏和更换。
(4)课程小结给出ACM程序设计过程的收获、遇到的问题,遇到问题解决问题过程的思考、程序调试能力的思考等,需要手写签字。(5)课程大作业提交时间为2011年5月24日(第14周星期二)晚19:00~20:00,地点:计算中心A机房。
一、课题名称:
五位以内的对称素数
二、课题内容和要求:
题目:判断一个数是否为对称且不大于五位数的素数。
要求:判断输入的一组数据(正整数)是否是五位以内的对称素数,逐个判断并输出“yes”或“no”
三、课题分析:
定义两个函数分别判断数据是否为素数(bool isprime(int n)),是否是对称数(bool issym(int n));在main()函数中利用if()语句来判断该数据是否是五位以内的数。只有同时满足三个条件,才能判断一个数据是五位以内的对称素数,输出“yes”;否则输出“no”。
输入输出方案:
输入:
输入数据含有不多于50个的正整数(0 输出: 对于每个n,如果该数是不大于五位数的对称素数,则输出“Yes”,否则输出“No”。每个判断结果单独列一行。 四、概要设计:流程图: 五、详细设计: 源代码如下: #include using namespace std; bool isprime(int n) //判断某数据是否是素数{ if (1==n)return 0; for(int i=2;i*i<=n;i++) if(n%i==0) return 0; return 1; } bool issym(int n) //判断某数据是否是对称数{ if(n<10)return 1; if(n>=10 && n<100) if(n/10==n%10)return 1; if(n>=100 && n<1000) if(n%10==n/100)return 1; if(n>=10000 && n<100000) if(n/1000==(n%10)*10+(n%100)/10)return 1; return 0; } int main() { int n; while(cin>>n) { if(n<100000 && isprime(n) && issym(n)) //三个条件判断某 数据是五位以内的对称素数 cout<<"Y es"< else cout<<"No"< } return 0; } 六、测试数据及其结果分析: 七、调试过程中的问题 判断一个数据是否为对称数是采用数据分段的方式进行判断; 八、参考资料: C++教科书 输出样例: yes yes no 输入样例: 11 101 272 南京邮电大学《ACM算法与数据结构设计》 课程小结 学生姓名 班级学号 学生学院计算机软件学院 学生专业计算机科学与技术 电子邮件 指导教师 学期2010-2011-2