c语言查找级数计算.docVIP

  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文档。上传文档
查看更多
c语言查找级数计算

c语言常用算法 2011-03-28 21:25 1.查找 (1)顺序查找(即线性查找) 顺序查找的思路是:将待查找的量与数组中的每一个元素进行比较,若有一个元素与之相等则找到;若没有一个元素与之相等则找不到。 例1、任意读入10个数存放到数组a中,然后读入待查找数值,存放到x中,判断a中有无与x等值的数。 #define N 10 main int a[N],i,x; for i 0;i N;i++ scanf %d,a[i] ; /*以下读入待查找数值*/ scanf %d,x ; for i 0;i N;i++ if a[i] x break ; /*一旦找到就跳出循环*/ if i N printf Found!\n ; else printf Not found!\n ; (2)折半查找(即二分法) 顺序查找的效率较低,当数据很多时,用二分法查找可以提高效率。使用二分法查找的前提是数列必须有序。 二分法查找的思路是:要查找的关键值同数组的中间一个元素比较,若相同则查找成功,结束;否则判别关键值落在数组的哪半部分,就在这半部分中按上述方法继续比较,直到找到或数组中没有这样的元素值为止。 例1、任意读入一个整数x,在升序数组a中查找是否有与x等值的元素。 #define n 10 main int a[n] 2,4,7,9,12,25,36,50,77,90 ; int x,high,low,mid;/*x为关键值*/ scanf %d,x ; high n-1; low 0; mid high+low /2; while a[mid]! xlow high if x a[mid] high mid-1; /*修改区间上界*/ else low mid+1; /*修改区间下界*/ mid high+low /2; if xa[mid] printf Found %d,%d\n,x,mid ; else printf Not found\n ; 2.级数计算 级数计算的关键是“描述出通项”,而通项的描述法有两种:一为直接法、二为间接法又称递推法。 直接法的要领是:利用项次直接写出通项式;递推法的要领是:利用前一个(或多个)通项写出后一个通项。 可以用直接法描述通项的级数计算例子有: (1)1+2+3+4+5+…… (2)1+1/2+1/3+1/4+1/5+……等等。 可以用间接法描述通项的级数计算例子有: (1)1+1/2+2/3+3/5+5/8+8/13+…… (2)1+1/2!+1/3!+1/4! +1/5!+……等等。 (1)直接法求通项 例1、求1+1/2+1/3+1/4+1/5+……+1/100的和。 main float s; int i; ?s 0.0; ?for i 1;i 100;i++ s s+1.0/i ; ?printf 1+1/2+1/3+...+1/100 %f\n,s ; 【解析】程序中加粗部分就是利用项次i的倒数直接描述出每一项,并进行累加。注意:因为i是整数,故分子必须写成1.0的形式! (2)间接法求通项(即递推法) 例2、计算下列式子前20项的和:1+1/2+2/3+3/5+5/8+8/13+……。 [分析]此题后项的分子是前项的分母,后项的分母是前项分子分母之和。 main float s,fz,fm,t,fz1; ?int i; ?s 1; /*先将第一项的值赋给累加器s*/ ?fz 1;fm 2; ?t fz/fm;???/*将待加的第二项存入t中*/ ?for i 2;i 20;i++ s s+t; ??/*以下求下一项的分子分母*/ ??fz1 fz; /*将前项分子值保存到fz1中*/ ??fz fm; /*后项分子等于前项分母*/ ??fm fz1+fm;??/*后项分母等于前项分子、分母之和*/ ??t fz/fm; ?printf 1+1/2+2/3+... %f\n,s ;

文档评论(0)

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

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

1亿VIP精品文档

相关文档