《C编程题答案.doc》由会员分享,可在线阅读,更多相关《C编程题答案.doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1. 求所有的“水仙花数”的个数及“水仙花数”之和。所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为153=13+53+33。#includeint main() int a,b,c,i,n,s=0; for(i=100;i=999;i+) a=i/100; b=(i-a*100)/10; c=i%10; if(a*100+b*10+c=a*a*a+b*b*b+c*c*c) s=s+i; n=n+1; printf(%dn%dn,s,n); return 0; 运行答案为130142. 设某四位数的千位数字与十位数字的和等于百位数字与个位数字的积,
2、例如,对于四位数:9512,9+1=5*2,试问所有这样的四位数个数及之和分别是多少?#includeint main() int a,b,c,d,i,n=0,s=0; for(i=1000;i=9999;i+) a=i/1000; b=(i-a*1000)/100; c=(i-a*1000-b*100)/10; d=i%10; if(a+c=b*d) s=s+i; n=n+1; printf(%dn%dn,n,s); return 0;运行答案是20710782893. 求1,500之间所有的素数的个数及所有素数之和。#includeint main() int i,j,t,n=0,s=0;
3、 for(i=1;i=500;i+) t=i; for(j=1;j=i/2;j+) if(t%j=0) s=s+i; n=n+1; printf(%dn%dn,s,n);return 0;运行答案为73599326904. 若某数N的所有因子之和等于N的倍数,则称N为多因子完备数。例如:28是多因子完备数。因为:1+2+4+7+14+28=56=28*2,试求1,500之内:(1) 有多少个多因子完备数?(2) 其中最大一个多因子完备数是多少?#include#includeint main() int a,b=0,s=0,i,j;for(i=2;i=500;i+)a=1;for(j=2;j=
4、sqrt(i);j+)if(i%j=0)a=0;break;if(a=1)b=b+1;s=s+i;printf(%d %dn,b,s);return 0;运行结果为95215365. 求各位数字平方和等于100的四位数个数及和。#includeint main() int a,b,c,d,i,n=0,s=0; for(i=1000;i=9999;i+) a=i/1000; b=(i-a*1000)/100; c=(i-a*1000-b*100)/10; d=i%10; if(a*a+b*b+c*c+d*d=100) s=s+i; n=n+1; printf(%dn%dn,n,s); retur
5、n 0;运行结果为492490896. 一自然数平方后的末几位与该数相同时,称此数为自同构数。例如,由于52=25,252=625,则称5,25为自同构数。求出1,700以内的:(1)最大的同构数。(2)自同构数数目。#includeint main()int m=0,b=0,n,i,c;for(i=1;i=700;i+)if(i10)n=10;elseif(im)m=i;printf(%d %dn,b,m);运行答案是76257. 求100,999之间能被3整除,且至少有一位数字是5的所有正整数的个数及和。#includeint main() int a,b,c,i,n=0,s=0; for
6、(i=100;i=999;i+) a=i/100; b=(i-a*100)/10; c=i%10; if(i%3=0&(a=5|b=5|c=5) s=s+i; n=n+1; printf(n%d %dn,s,n);return 0;运行答案为46212858. 求10,150之间的能被3或7整除的数的:(1)个数。(2)平方和。#includeint main() int b,i,s=0; for(i=10;i=150;i+) if(i%3=0|i%7=0) s=i*i+s; b=b+1; printf(%d %dn,s,i);return 0;运行结果为4866491519. 所谓回文数是从
7、左至右与从右至左读起来都是一样的数字,如:121是一个回文数。编写程序,求出100-900之间的所有回文数的个数及和。#includeint main() int a,b=0,n=0,c,i,s=0; for(i=100;i=999;i+) a=i/100; b=(i-a*100)/10; c=i%10; if(a=c) s=s+i; n=n+1; printf(n%d %dn,n,s);return 0;运行结果为904950010. 求四位数的偶数中,所有各位数字之和是24的倍数的数的个数及这种四位数之和。#includeint main() int a,b,c,d,i,n=0,s=0; for(i=1000;i=9999;i+=2) a=i/1000; b=(i-a*1000)/100; c=(i-a*1000-b*100)/10; d=i%10; if(a+b+c+d)%24=0) s=s+i; n=n+1; printf(%d %dn,s,n);return 0;运行结果为1298328187
限制150内