2011-2012-1-常用算法2010-4.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2011-2012-1-常用算法2010-4

§3.7 迭代问题和查找问题 例2:用折半查找法查找一个数据是否在有序数列中。 34.下面函数为二分法查找key值。数组中元素已递增排序,若找到key则返回对应的下标,否则返回-1。 fun(int a[],int n,int key) {int low,high,mid; low=0; high=n-1; while(【?】) {mid=(low+high)/2; if(keya[mid]) 【?】; else if(keya[mid]) 【?】; else 【?】; } return -1; } main() { int a[10]={1,2,3,4,5,6,7,8,9,10}; int b,c; b=4; c=fun(a,10,b); if(c==-1)printf(not found); else printf(position %d\n,c); } 3.8 其他问题 1、穷举 2、数字分离 3、矩阵问题 4、递归程序 3.程序功能是输入一个长整数,求各位数字的平方和。如果输入的是负数,求其相反数的各位数字的平方和。 #include stdio.h main( ) { int digit; long in,s; /**********FOUND**********/ scanf(%ld, in); if (in0) in=-in; s=0; /**********FOUND**********/ while(in0) { digit=in%10; s=s+digit*digit; /**********FOUND**********/ in=in%10; } printf(sum=%ld\n, s); } 4、编写函数fun,函数的功能是:求一个四位数的各位数字的立方和. #include stdio.h int fun(int n) {/**********Program**********/ /********** End **********/ } main() { int k; k=fun(1234); printf(k=%d\n,k); } 12、编写函数fun其功能是:判断一个整数w的各位数字平方之和能否被5整除,可以被5整除则返回1,否则返回0。 #include stdio.h #includeconio.h int fun(int w) {/**********Program**********/ /********** End **********/ } main() { int m; printf(Enter m: ); scanf(%d, m); printf(\nThe result is %d\n, fun(m)); } 53、编写函数fun,函数的功能是:求一个整数的各位数字的平方和。若n=1234,则运行结果k=30。 #include stdio.h int fun(int n) {/**********Program**********/ /********** End **********/ } main() {int k; k=fun(1234); printf(k=%d\n,k); } 15.输出100到1000之间的各位数字之和能被15整除的所有数,输出时每10个一行。 main() {int m,n,k,i=0; for(m=100;m=1000;m++) { 【?】 ; n=m; do {k=k+【?】 ; n=n/10; }【?】; if (k%15==0) { printf(%5d,m); i++; if(i%10==0) 【?】; } } } 18.以下程序的功能是统计 400~499 这些数中“4”这个数字出现的次数,判断一个数有几位数字4用函数fun实现。 int fun(int x) { int y,k=0; /**********FOUND**********/ while (x==0) {y=x%10; /**********FOUND**********/ if(y=4) k++; x=x/10; } /**********FOUND**********/ return(y); } main() {int i,k=0; for(i=4

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档