77范文网 - 专业文章范例文档资料分享平台

c语言趣味题(4)

来源:网络收集 时间:2019-04-05 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

{

long int i;

int count=0; /*count:统计满足条件的五位数的个数*/ for(i=1000;i<9999;i++)

if(!((i*10+6)%3)) /*判断所选的数能否被3整除*/ count++; /*若满足条件则计数*/ printf(\=%d\\n\}

*运行结果 count=2999 *思考题

求100到1000之间有多少个其数字之和为5的整数。

(答案:104,113,122,131,140,203,212,221,230,302,311,320,401,410,500)

18.8除不尽的自然数

一个自然数被8除余1,所得的商被8除也余1,再将第二次的商被8除后余7,最后得到一个商为a。又知这个自然数被17除余4,所得的商被17除余15,最后得到一个商是a的2倍。求这个自然数。 *问题分析与算法设计

根据题意,可设最后的商为i(i从0开始取值),用逆推法可以列出关系式: (((i*8+7)*8)+1)*8+1=((2*i*17)+15)*18+4 再用试探法求出商i的值。 *程序说明与注释 #include int main() { int i;

for(i=0;;i++) /*试探商的值*/

if(((i*8+7)*8+1)*8+1==(34*i+15)*17+4) { /*逆推判断所取得的当前i值是否满足关系式*/ /*若满足则输出结果*/

printf(\break; /*退出循环*/ } }

*运行结果

The required number is:1993 19.一个奇异的三位数

一个自然数的七进制表达式是一个三位数,而这个自然数的九进制表示也是一个三位数,且这两个三位数的数码正好相反,求这个三位数。 *问题分析与算法设计

根据题意可知,七进制和九进制表示的这全自然数的每一位一定小于7,可设其七进制数形式为kji(i、j、k的取值分别为1~6),然后设其九进制表示形式为ijk。 *程序说明与注释 #include int main() { int i,j,k;

for(i=1;i<7;i++) for(j=0;j<7;j++) for(k=1;k<7;k++)

if(i*9*9+j*9+k==i+j*7+k*7*7) {

printf(\

printf(\} }

*运行结果

The special number with 3 digits is:503(7)=305(9)=248(10) 20.位反序数

设N是一个四位数,它的9倍恰好是其反序数,求N。反序数就是将整数的数字倒过来形成的整数。例如:1234的反序数是4321。 *问题分析与算法设计

可设整数N的千、百、十、个位为i、j、k、l,其取值均为0~9,则满足关系式: (i*103+j*102+10*k+l)*9=(l*103+k*102+10*j+i) 的i、j、k、l即构成N。 *程序说明与注释 #include int main() { int i;

for(i=1002;i<1111;i++) /*穷举四位数可能的值*/

if(i*1000+i/10*100+i/100*10+i/1000==i*9) /*判断反序数是否是原整数的9倍*/

printf(\/*若是则输出*/ }

*运行结果

The number satisfied states condition is:1089

21.求车速

一辆以固定速度行驶的汽车,司机在上午10点看到里程表上的读数是一个对称数(即这个数从左向右读和从右向左读是完全一样的),为95859。两小时后里程表上出现了一个新的对称数。问该车的速度是多少?新的对称数是多少? *问题分析与算法设计

根据题意,设所求对称数为i,其初值为95589,对其依次递增取值,将i值的每一位分解后与其对称位置上的数进行比较,若每个对称位置上的数皆相等,则可判定i即为所求的对称数。 *程序说明与注释 #include int main() {

int t,a[5]; /*数组a存放分解的数字位*/ long int k,i;

for(i=95860;;i++) /*以95860为初值,循环试探*/ {

for(t=0,k=100000;k>=10;t++) /*从高到低分解所取i值的每位数*/ { /* 字,依次存放于a[0]~a[5]中*/ a[t]=(i%k)/(k/10); k/=10; }

if((a[0]==a[4])&&(a[1]==a[3])) {

printf(\a[0],a[1],a[2],a[3],a[4]);

printf(\break; } } }

*运行结果

The new symmetrical number kelometers is:95959. The velocity of the car is:50.00 *思考题

将一个数的数码倒过来所得到的新数叫原数的反序数。如果一个数等于它的反序数,则称它为对称数。求不超过1993的最大的二进制的对称数。

22.由两个平方三位数获得三个平方二位数

已知两个平方三位数abc和xyz,其中a、b、c、x、y、z未必是不同的;而ax、by、cz是三个平方二位数。请编程求三位数abc和xyz。

*问题分析与算法设计

任取两个平方三位数n和n1,将n从高向低分解为a、b、c,将n1从高到低分解为x、y、z。判断ax、by、cz是否均为完全平方数。 *程序说明与注释 #include #include void f(int n,float* s); int main() { int i,t;

float a[3],b[3];

print(\binations are:\\n\for(i=11;i<=31;++i) //穷举平方三位数的取值范围 for(t=11;t<=31;++t) {

f(i*i,a); //分解平方三位数的各位,每位数字分别存入数组中 f(t*t,b);

if(sqrt(a[0]*10+b[0]) == (int)sqrt(a[0]*10+b[0]) && sqrt(a[1]*10+b[1]) == (int)sqrt(a[1]*10+b[1]) && sqrt(a[2]*10+b[2]) == (int)sqrt(a[2]*10+b[2]) ) {

printf(\若三个新的数均是完全平方数,则输出 } } }

/* ———————————————-

分解三位数n的各位数字,将各个数字从高到低依次存入指针s所指向的数组中 ————————————————*/ void f(int n,float* s) { int k;

for(k=1000;k>=10;++s) {

*s = (n%k) /(k/10); k /=10; } }

*运行结果

The possible perfect squares combinations are: 400 and 900 841 and 196

*思考题

求这样一个三位数,该三位数等于其每位数字的阶乘之和。 即 abc = a! + b! + c!

(正确结果:145 = 1! + 4! +5!)

23.阿姆斯特朗数

如果一个正整数等于其各个数字的立方和,则称该数为阿姆斯特朗数(亦称为自恋性数)。 如 407=43+03+73就是一个阿姆斯特朗数。试编程求1000以内的所有阿姆斯特朗数。 *问题分析与算法设计

可采用穷举法,依次取1000以内的各数(设为i),将i的各位数字分解后,据阿姆斯特朗数的性质进行计算和判断。 *程序说明与注释 #include int main() {

int i,t,k,a[3];

printf(\aller than 1000:\\n\for(i=2;i<1000;i++) /*穷举要判定的数i的取值范围2~1000*/ {

for(t=0,k=1000;k>=10;t++) /*截取整数i的各位(从高向低位)*/ {

a[t]=(i%k)/(k/10); /*分别赋于a[0]~a[2}*/ k/=10; }

if(a[0]*a[0]*a[0]+a[1]*a[1]*a[1]+a[2]*a[2]*a[2]==i) /*判断i是否为阿姆斯特朗数*/

printf(\若满足条件,则输出*/ }

printf(\}

*运行结果

There are following Armstrong number smaller than 1000: 153 370 371 407 24.完全数

如果一个数恰好等于它的因子之和,则称该数为―完全数‖。 *问题分析与算法设计

根据完全数的定义,先计算所选取的整数a(a的取值1~1000)的因子,将各因子累加于m,若m等于a,则可确认a为完全数。

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库c语言趣味题(4)在线全文阅读。

c语言趣味题(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/573304.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: