欢迎来到天天文库
浏览记录
ID:57300795
大小:25.50 KB
页数:7页
时间:2020-08-10
《C语言特殊数据的输出.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、特殊数据的输出【涉及知识点】1.函数的参数;2.多分支条件语句;3.循环;4.数据的输入输出;5.随机函数的使用。【题目介绍】请编写程序,由系统随机产生一个正整数n(12、点与提示】1.各类特殊数据的解释如下:(1)完全数是恰好等于自身的因子之和的数,例如6是完全数,因为6=1*2*3=1+2+3。(2)亲密数是两个正整数,其中一个整数的全部因子之和等于另一个(因子中不计本身),例如220和284是亲密数,因为220的全部因子是1,2,4,5,10,11,20,22,44,55,110,和为284;而284的全部因子是1,2,4,71,142,和为220。(3)水仙花数是恰好等于自身各位数字立方和的数,例如153是水仙花数,因为153=13+53+33。(4)阶乘和数是恰好等于自身各位数字阶乘的和的数,例如145是阶乘和数,因为145=1!+4!+53、!。(5)自守数是平方后尾部数字是自身的数,例如9376是,因为93762=87909376。(6)孪生素数是差2的两个素数,例如197和199。2.建议编写一个函数求出某数的因子和,以减少求完全数和亲密数函数中的重复代码。3.自守数中整数x尾部数字的求法:x%10表示x的最后一位数字,x%100表示x的最后两位数字,x%1000表示x的最后三位数字,以此类推。1.C编译器提供了基于ANSI标准的伪随机数发生器函数rand()和srand(),用来生成随机数。这二个函数的工作过程如下:srand()提供一个种子,它是一个unsignedint类型,其取值范围从0~65535;然后调4、用rand(),它会根据提供给srand()的种子值返回一个随机数(在0到32767之间);根据需要多次调用rand(),从而不间断地得到新的随机数;无论什么时候,都可以给srand()提供一个新的种子,从而进一步“随机化”rand()的输出结果。例1是0~32767之间的随机数程序:例1:#include#include#include//使用当前时钟做种子voidmain(void){inti;srand((unsigned)time(NULL));//初始化随机数for(i=0;i<10;i++)//打印出10个随机数pr5、intf("%d",rand());}参照上述程序随机生成正整数n(1#include#include//以下函数求一个整数的所有因子的和。intyinzihe(intn){inti,r=0;for(i=1;i<=n/2;i++)if(n%i==0)r+=i;returnr;}//以上函数求一个整数的所有因子的和。voidwqs(intn)//输出完全数{inti,k=0;for(i=1;i6、;if(k%5==0)printf("");}}printf("");}voidqms(intn)//输出亲密数{inti,k=0;for(i=2;i7、tn)//输出水仙花数{inti,k=0,a=0,t=0;for(i=100;i
2、点与提示】1.各类特殊数据的解释如下:(1)完全数是恰好等于自身的因子之和的数,例如6是完全数,因为6=1*2*3=1+2+3。(2)亲密数是两个正整数,其中一个整数的全部因子之和等于另一个(因子中不计本身),例如220和284是亲密数,因为220的全部因子是1,2,4,5,10,11,20,22,44,55,110,和为284;而284的全部因子是1,2,4,71,142,和为220。(3)水仙花数是恰好等于自身各位数字立方和的数,例如153是水仙花数,因为153=13+53+33。(4)阶乘和数是恰好等于自身各位数字阶乘的和的数,例如145是阶乘和数,因为145=1!+4!+5
3、!。(5)自守数是平方后尾部数字是自身的数,例如9376是,因为93762=87909376。(6)孪生素数是差2的两个素数,例如197和199。2.建议编写一个函数求出某数的因子和,以减少求完全数和亲密数函数中的重复代码。3.自守数中整数x尾部数字的求法:x%10表示x的最后一位数字,x%100表示x的最后两位数字,x%1000表示x的最后三位数字,以此类推。1.C编译器提供了基于ANSI标准的伪随机数发生器函数rand()和srand(),用来生成随机数。这二个函数的工作过程如下:srand()提供一个种子,它是一个unsignedint类型,其取值范围从0~65535;然后调
4、用rand(),它会根据提供给srand()的种子值返回一个随机数(在0到32767之间);根据需要多次调用rand(),从而不间断地得到新的随机数;无论什么时候,都可以给srand()提供一个新的种子,从而进一步“随机化”rand()的输出结果。例1是0~32767之间的随机数程序:例1:#include#include#include//使用当前时钟做种子voidmain(void){inti;srand((unsigned)time(NULL));//初始化随机数for(i=0;i<10;i++)//打印出10个随机数pr
5、intf("%d",rand());}参照上述程序随机生成正整数n(1#include#include//以下函数求一个整数的所有因子的和。intyinzihe(intn){inti,r=0;for(i=1;i<=n/2;i++)if(n%i==0)r+=i;returnr;}//以上函数求一个整数的所有因子的和。voidwqs(intn)//输出完全数{inti,k=0;for(i=1;i6、;if(k%5==0)printf("");}}printf("");}voidqms(intn)//输出亲密数{inti,k=0;for(i=2;i7、tn)//输出水仙花数{inti,k=0,a=0,t=0;for(i=100;i
6、;if(k%5==0)printf("");}}printf("");}voidqms(intn)//输出亲密数{inti,k=0;for(i=2;i7、tn)//输出水仙花数{inti,k=0,a=0,t=0;for(i=100;i
7、tn)//输出水仙花数{inti,k=0,a=0,t=0;for(i=100;i
此文档下载收益归作者所有