耿弋 课程设计报告

耿弋 课程设计报告

ID:18671023

大小:183.00 KB

页数:7页

时间:2018-09-20

耿弋 课程设计报告_第1页
耿弋 课程设计报告_第2页
耿弋 课程设计报告_第3页
耿弋 课程设计报告_第4页
耿弋 课程设计报告_第5页
资源描述:

《耿弋 课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、江苏省江阴职业技术教育中心校JingYinVocationalTechnologyEducationSchool课程设计报告课程名称:C语言设计题目:身份证号码之迷班级:06计信(2)班姓名:耿弋学号:0621403205指导教师:丁燕萍江苏省江阴职业技术教育中心校二○○八年五月目录题目分析……………………………………………………………………(1)总体设计……………………………………………………………………(1)代码实现……………………………………………………………………(3)常见问题分析………………………………………………

2、………………(4)心得体会……………………………………………………………………(4)参考资料……………………………………………………………………(5)江苏省江阴职业技术教育中心校 课程设计课程设计报告书一、题目分析题目要求:这是发生在外国警察局中的一个故事,已知某人身份证号码扣除第一个英文字母后是9位数,现在有一个人的身份证号码中前1位可以被1的平方整除,前2位可以被2的平方整除,前3位可以被3的平方整除,前4位可以被4的平方整除,而从第5位开始,前5位可以被5整除,前6位可以被6整除……以此类推至前9位可以被9整除,请通过

3、适当的算法求出此身份证号码中的9位数。对于上面的案子,仔细分析,可知任何一个数都可被1整除,因此9个条件只有8个有意义。我们可以将9个数字用变量a1,a2,……a9来表示,每个位数的取值范围为0~9,有了各位上的数字,就要来组合题中对我们有用的8个条件。(1)首先要将前两位数组合出来:a1*10+a2这就是前两位组成的数,这个数能被2的平方整除,用公式表示为(a1*10+a2)%4==0。(2)前3位可以被3的平方整除,前3位数就可写成:a1*100+a2*10+a3,整除条件为(a1*100+a2*10+a3)%9==0。

4、(3)前4位与上面类似。(4)前5位数为:a1*10000+a2*1000+a3*100+a4*10+a5,整除条件为(a1*10000+a2*1000+a3*100+a4*10+a5)%5==0.由于表达示太长,可设一个数n来代表前面表达式的值。(5)第6~9个条件只要将(4)进行变化,就可得出。二、总体设计5江苏省江阴职业技术教育中心校 课程设计Fora1=oto9Fora2=0to9N=((a1*10+a2)%4==0)NYFora3=oto9N=((a1*100+a2*10+a3)%9==0)NYFora4=0to9

5、N=((a1*1000+a2*100+a3*10+a4)%16==0)NYFora2=0to9Fora5=0to9N=((a1*10000+a2*1000+a3*100+a4*10+a5)%5==0)NYFora6=oto9①NYFora7=oto9NY②3图1①N=((a1*100000+a2*10000+a3*1000+a4*100+a5*10+a6)%6==0)②N=((a1*1000000+a2*100000+a3*10000+a4*1000+a5*100+a6*10+a7)%7==0)Fora8=oto93N=((

6、a1*10000000+a2*1000000+a3*100000+a4*10000+a5*1000+a6100+a7*10+a8)%8==0)N=((a1*10000000+a2*1000000+a3*100000+a4*10000+a5*1000+a6*100+a7*10+a9)%9==0)NYFora9=oto9NY5江苏省江阴职业技术教育中心校 课程设计图2实质上我们就是将a1在0~9,a2在0~9之间……a9在0~9之间组成的000000000~999999999之间符合前面我们所列的9个条件的数列,最后得到的数也就

7、是我们的所求了。所以程序的大体结构是9个循环并且内部有分支语句。本题最大的特点还是循环,有9个循环套在一起。为什么能用这么多循环呢,和上面的10亿个数字的特点不无关系。如果从每个数位上去看,特点便是循环中出循环的特点。至于循环中的条件呢?因为不是各个条件对9个循环都是需要的,第1个循环只和第一个条件相联系,这就决定了9个条件不是连在一起的,而是分散发挥作用的,这是我们需注意的是第二点。三、代码实现main(){longa1,a2,a3,a4,a5,a6,a7,a8,a9,n;for(a1=0;a1<=9;a1++){for(

8、a2=0;a2<=9;a2++)if((a1*10+a2)%4==0){for(a3=0;a3<=9;a3++)if((a1*100+a2*10+a3)%9==0){for(a4=0;a4<=9;a4++)if((a1*1000+a2*100+a3*10+a4)%16==0){for(a5

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。