CC语言经典、实用、趣味程序设计编程百例精解(3-4).doc

CC语言经典、实用、趣味程序设计编程百例精解(3-4).doc

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CC语言经典、实用、趣味程序设计编程百例精解(3-4)

C/C 语言经典、实用、趣味程序设计编程百例精解(3-4) 21.位反序数 设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。 *程序说明与注释 #includestdio.h int main() { int i; for(i=1002;i1111;i++) /*穷举四位数可能的值*/ if(i%10*1000+i/10%10*100+i/100%10*10+i/1000==i*9) /*判断反序数是否是原整数的9倍*/ printf(The number satisfied stats condition is: %d\n,i); /*若是则输出*/ } *运行结果 The number satisfied states condition is:1089 HYPERLINK /beginner/10022.html 22.求车速 一辆以固定速度行驶的汽车,司机在上午10点看到里程表上的读数是一个对称数(即这个数从左向右读和从右向左读是完全一样的),为95859。两小时后里程表上出现了一个新的对称数。问该车的速度是多少?新的对称数是多少? *问题分析与算法设计 根据题意,设所求对称数为i,其初值为95589,对其依次递增取值,将i值的每一位分解后与其对称位置上的数进行比较,若每个对称位置上的数皆相等,则可判定i即为所求的对称数。 *程序说明与注释 #includestdio.h 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(The new symmetrical number kelometers is:%d%d%d%d%d\n, a[0],a[1],a[2],a[3],a[4]); printf(The velocity of the car is: %.2f\n,(i-95859)/2.0); break; } } } *运行结果 The new symmetrical number kelometers is:95959. The velocity of the car is:50.00 *思考题 将一个数的数码倒过来所得到的新数叫原数的反序数。如果一个数等于它的反序数,则称它为对称数。求不超过1993的最大的二进制的对称数。 ? HYPERLINK /beginner/10023.html 23.由两个平方三位数获得三个平方二位数 ? 已知两个平方三位数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是否均为完全平方数。 *程序说明与注释 #includestdio.h #includemath.h void f(int n,float* s); int main() { int i,t; float a[3],b[3]; print(The possible perfect squares combinations 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(%d and %d\n,i*i,t*t); //若三个新的数均是完全平方数,则输出 } } } ? /* ———————————————- 分解三位数n的各位数字,将各个数字

文档评论(0)

189****2507 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档