学院XX学院班级XX学号XX姓名XXX摘要我选择的是数学型综合作业:(A)求最大数;(B)高次方数的尾数。主要内容:(A)求555555的约数中最大的三位数;(B)求13的13次方的最后三位数。基本设计思路:(A)题目的设计思路是:因为要求的是三位数,就用555555从小到大依次除以100到999的所有数,并判断能否整除,最后一个可以整除555555的数即为所求。(B)题目的设计思路是:乘积的最后三位数只与乘数和被乘数的后三位数有关,因此用1乘以13,再除以1000并取余数,用余数乘以13,再除以1000并取余数,依次进行下去,累乘13个13后除以1000取得的余数即为所求。在(A)题目中,我限定了除数的范围,减少了计算次数,省去了比较约数大小的步骤,使程序更加简洁。在(B)题目中我没有拿13累乘13次,而是取每一次乘13所得乘积的最后三位数依次乘13,大大减少了计算,简化了程序;取最后三位数我利用除以1000取余数的方法,方便、快捷。两个题目中均使用FOR循环,程序书写简练明了。我个人认为这两个题目我不编写得比较简洁,运算结果正确,很好地完成了题目要求。Eagle@mail.nwpu.edu.cn2目录1摘要.................................................................................................31.1设计题目..................................................................................31.2设计内容..................................................................................31.3开发工具..................................................................................31.4应用平台..................................................................................32详细设计.........................................................................................32.1程序结构..................................................................................32.2主要功能...................................................错误!未定义书签。2.3函数实现..................................................................................62.4开发日志..................................................................................63程序调试及运行.............................................................................73.1程序运行结果...........................................................................73.2程序使用说明...........................................................................83.3程序开发总结...........................................................................84附件(源程序).............................................................................8Eagle@mail.nwpu.edu.cn31摘要1.1设计题目(A)求最大数;(B)高次方数的尾数1.2设计内容(A)求555555的约数中最大的三位数;(B)求13的13次方的最后三位数1.3开发工具VisualC++6.0和Win32。1.4应用平台WindowsXP32位2详细设计2.1程序结构(A)求最大数Eagle@mail.nwpu.edu.cn4定义变量a、b、c,a从100至999递增,b为555555,用b除以a,判断是否可以整除,若可以,则把a的值赋给c,a自加1;若不可,a自加1。重复以上步骤,直到a999,输出c。循环语句采用for循环。(B)高次方数的尾数c=0a=999?输出ca++结束c=ab=555555a=100开始b%a==0?Eagle@mail.nwpu.edu.cn5定义变量i、j,i从1至13递增,j初值为1。用j乘以13,用得到的乘积除以1000并取其余数,赋给j,i自加1。重复以上步骤,直到i13,输出j。循环语句采用for循环。j=1i=13?输出ji++结束j=j*13%1000i=1开始Eagle@mail.nwpu.edu.cn62.2主要功能程序功能:(A)求555555的约数中最大的三位数;(B)求13的13次方的最后三位数。原理和方法:(A)题目的原理和方法:因为要求的是三位数,就用555555从小到大依次除以100到999的所有数,并判断能否整除,最后一个可以整除555555的数即为所求。循环语句采用for循环。(B)题目的原理和方法:乘积的最后三位数只与乘数和被乘数的后三位数有关,因此用1乘以13,再除以1000并取余数,用余数乘以13,再除以1000并取余数,依次进行下去,累乘13个13后除以1000取得的余数即为所求。循环语句采用for循环。2.3函数实现(A)求最大数inta,b=555555,c;/*定义变量,赋初值*/for(a=100;a=999;a++)/*FOR循环*/{if(b%a==0)/*利用IF语句判断b是否可以被a整除*/c=a;/*将555555的约数赋给c*/}printf(%d\n,c);/*输出c*/(B)高次方数的尾数inti,j=1;/*定义变量,赋初值*/for(i=1;i=13;i++)/*FOR循环*/{j=j*13%1000;/*将j乘以13的乘积的后三位数赋给j*/}printf(%d\n,j);/*输出j*/2.4开发日志(A)选定这个题目后,我先分析此题用何种算法完成,确定了使用FOR循环并限定除数范围,然后画出程序框图,再一步步编写源代码。调试过程很顺利,只有一个地方忘加了“;”。运行程序后,结果非常满意。(B)这个题目不难,但是也不简便,我想到只取三位数的方法,并使用FOR循环,然后画出程序框图,再一步步编写源代码。调试过程发现对其中一个变量的初值是1还是13有待解决,分析程序后发现应该用1,然后进一步调试,运行,直至结果正确。Eagle@mail.nwpu.edu.cn73程序调试及运行3.1程序运行结果(A)求最大数求得555555的约数中最大的三位数是777(B)高次方数的尾数求得13的13次方的最后三位数是253Eagle@mail.nwpu.edu.cn83.2程序使用说明(A)打开源程序,编译,连接,然后运行即可得到求得555555的约数中最大的三位数是777(B)打开源程序,编译,连接,然后运行即可得到13的13次方的最后三位数是2533.3程序开发总结首先,程序开发需要耐心,从算法设计到源代码编写要一步步耐心完成。程序开发需要细心,特别是程序调试过程中,细心可以更迅速地发现错误,节省时间。最后,程序开发需要创新,创新的思路,创新的算法可以简化程序,也是程序编写更加快捷。4附件(源程序)(A)求最大数.C(工程名称:求最大数)#includestdio.hintmain(){inta,b=555555,c;for(a=100;a=999;a++){if(b%a==0)c=a;}printf(%d\n,c);return0;}(B)高次方数的尾数.C(工程名称:高次方数的尾数)#includestdio.hintmain(){inti,j=1;for(i=1;i=13;i++){j=j*13%1000;}printf(%d\n,j);return0;}