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

简单题 一个奇异的三位数 一个自然数的七进制表达式是一个三位数,而这个自然数的九进制表示也是一个三位数,且这两个三位数的数码正好相反,求这个三位数。 一个奇异的三位数 *问题分析与算法设计 根据题意可知,七进制和九进制表示的这全自然数的每一位一定小于7,可设其七进制数形式为kji(i、j、k的取值分别为1~6),然后设其九进制表示形式为ijk。 一个奇异的三位数 *程序说明与注释 #includestdio.h int main() { int i,j,k; for(i=1;i7;i++) for(j=0;j7;j++) for(k=1;k7;k++) if(i*9*9+j*9+k==i+j*7+k*7*7) { printf(The special number with 3 digits is:); printf(%d%d%d(7)=%d%d%d(9)=%d(10)\n,k,j,i,i,j,k,i*9*9+j*9+k); } } *运行结果 The special number with 3 digits is:503(7)=305(9)=248(10) 8除不尽的自然数 一个自然数被8除余1,所得的商被8除也余1,再将第二次的商被8除后余7,最后得到一个商为a。又知这个自然数被17除余4,所得的商被17除余15,最后得到一个商是a的2倍。求这个自然数。 8除不尽的自然数 问题分析与算法设计 根据题意,可设最后的商为i(i从0开始取值),用逆推法可以列出关系式: (((i*8+7)*8)+1)*8+1=((2*i*17)+15)*17+4 再用试探法求出商i的值。 8除不尽的自然数 *程序说明与注释 #includestdio.h int main() { int i; for(i=0;;i++) /*试探商的值*/ if(((i*8+7)*8+1)*8+1==(34*i+15)*17+4) { /*逆推判断所取得的当前i值是否满足关系式*/ /*若满足则输出结果*/ printf(The required number is: %d\n,(34*i+15)*17+4); break; /*退出循环*/ } } *运行结果 The required number is:1993 有限5位数 个位数为6且能被3整除的五位数共有多少? 有限5位数 *题目分析与算法设计 根据题意可知,满足条件的五位数的选择范围是10006、10016。。。99996。可设基础数i=1000,通过计算i*10+6即可得到欲选的数(i的变化范围是1000~999),再判断该数能否被3整除。 有限5位数 *程序说明与注释 #includestdio.h int main() { long int i; int count=0; /*count:统计满足条件的五位数的个数*/ for(i=1000;i9999;i++) if(!((i*10+6)%3)) /*判断所选的数能否被3整除*/ count++; /*若满足条件则计数*/ printf(count=%d\n,count); } *运行结果 count=2999 阶乘尾数零的个数 100!的尾数有多少个零? 阶乘尾数零的个数 问题分析与算法设计   可以设想:先求出100!的值,然后数一下末尾有多少个零。事实上,由于计算机所能表示的整数范围有限,这是不可能的。    为了解决这个问题,必须首先从数学上分析在100!结果值的末尾产生零的条件。 一个整数N若含有一个因子5,则必然会在求N!时产生一个零。因此问题转化为求1到100这100个整数中包含了多少个因子5。若整数N能被25整除,则N包含2个因子5;若整数N能被5整除,则N包含1个因子5。 阶乘尾数零的个数 *程序说明与注释 #includestdio.h int main() { int a,count =0; for(a=5;a=100;a+=5) //循环从5开始,以5的倍数为步长,考察整数 { ++count; //若为5的倍数,计数器加1 if(!(a%25)) ++count; //若为25的倍数,计数器再加1 } printf(The number of 0 in the end of 100! is: %d.\n,count); //打印结果 return 0; } *运行结果 The number of 0 in the end of 100! is: 24. 阶乘尾数零的个数 *思考题 修改程序中求因子5的数目的算法,使程序可以求出任意N!的末尾有多少个零。 4位反序数 设N是一个四位数,它的9倍恰好是其反序数,求N。反序数就是将整数的数字倒过来形成的整数。例如:

您可能关注的文档

文档评论(0)

zyzsaa + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档