c-c++语言趣味程序设计编程百例精解(3)

c-c++语言趣味程序设计编程百例精解(3)

ID:14004894

大小:41.00 KB

页数:14页

时间:2018-07-25

c-c++语言趣味程序设计编程百例精解(3)_第1页
c-c++语言趣味程序设计编程百例精解(3)_第2页
c-c++语言趣味程序设计编程百例精解(3)_第3页
c-c++语言趣味程序设计编程百例精解(3)_第4页
c-c++语言趣味程序设计编程百例精解(3)_第5页
资源描述:

《c-c++语言趣味程序设计编程百例精解(3)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、C-C++语言趣味程序设计编程百例精解(3)21.4位反序数设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。*程序说明与注释#includeintmain(){inti;for(i=1002;i<1111;i++)

2、/*穷举四位数可能的值*/if(i%10*1000+i/10%10*100+i/100%10*10+i/1000==i*9)/*判断反序数是否是原整数的9倍*/printf("Thenumbersatisfiedstatsconditionis:%d",i);/*若是则输出*/}*运行结果Thenumbersatisfiedstatesconditionis:108922.求车速一辆以固定速度行驶的汽车,司机在上午10点看到里程表上的读数是一个对称数(即这个数从左向右读和从右向左读是完全一样的),为9585

3、9。两小时后里程表上出现了一个新的对称数。问该车的速度是多少?新的对称数是多少?*问题分析与算法设计根据题意,设所求对称数为i,其初值为95589,对其依次递增取值,将i值的每一位分解后与其对称位置上的数进行比较,若每个对称位置上的数皆相等,则可判定i即为所求的对称数。*程序说明与注释#includeintmain(){intt,a[5];/*数组a存放分解的数字位*/longintk,i;for(i=95860;;i++)/*以95860为初值,循环试探*/{for(t=0,k=100000

4、;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("Thenewsymmetricalnumberkelometersis:%d%d%d%d%d",a[0],a[1],a[2],a[3],a[4]);printf("Thevelocityofthecaris:%.2f",(i-95859)/2.0);break;}}}*运行结果

5、Thenewsymmetricalnumberkelometersis:95959.Thevelocityofthecaris:50.00*思考题将一个数的数码倒过来所得到的新数叫原数的反序数。如果一个数等于它的反序数,则称它为对称数。求不超过1993的最大的二进制的对称数。23.由两个平方三位数获得三个平方二位数已知两个平方三位数abc和xyz,其中a、b、c、x、y、z未必是不同的;而ax、by、cz是三个平方二位数。请编程求三位数abc和xyz。*问题分析与算法设计任取两个平方三位数n和n1,将n从高向低

6、分解为a、b、c,将n1从高到低分解为x、y、z。判断ax、by、cz是否均为完全平方数。*程序说明与注释#include#includevoidf(intn,float*s);intmain(){inti,t;floata[3],b[3];print("Thepossibleperfectsquarescombinationsare:");for(i=11;i<=31;++i)//穷举平方三位数的取值范围for(t=11;t<=31;++t){f(i*i,a);//分解平

7、方三位数的各位,每位数字分别存入数组中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("%dand%d,i*i,t*t");//若三个新的数均是完全平方数,则输出}}}/*———————————————-分解三位数n的各位数字,将各个数字从高到低依次存

8、入指针s所指向的数组中————————————————*/voidf(intn,float*s){intk;for(k=1000;k>=10;++s){*s=(n%k)/(k/10);k/=10;}}*运行结果Thepossibleperfectsquarescombinationsare:400and900841and196*思考题求这样一个三位数,该三位数等于其每位数字的阶乘之和。

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

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

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