网站大量收购独家精品文档,联系QQ:2885784924

实验五常用算法-----枚举法递推法迭代法实验六文本文件的简单应用.docVIP

实验五常用算法-----枚举法递推法迭代法实验六文本文件的简单应用.doc

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

实验五 常用算法-----枚举法、递推法、迭代法 一.实验目的 掌握枚举法、递推法、迭代法这3个常用的算法 二.实验内容 1、范例:由0到4五个数字,组成5位数,每个数字用一次,但十位和百位不能为3(当然万位不能为0),输出所有可能的五位数。 #includeiostream using namespace std; int main(){ int i,j,k,l,m,count=0; for(i=1;i=4;i++){ for(j=0;j=4;j++){ if(j==i)continue; for(k=0;k=4;k++){ if(k==3||k==i||k==j)continue; for(l=0;l=4;l++){ if(l==3||l==i||l==j||l==k)continue; for(m=0;m=4;m++){ if(m==i||m==j||m==k||m==l)continue; coutijklm\t; count++; if(count%5==0)coutendl;}}}}} return 0; } 2、编程求和:s=a+aa+aaa+aaaa+ ……+aaaa…aaa(n个),其中a为1~9中的一个数字。 【提示】若第一项为a , 以后每一项由前一项乘以10加上a递推得到,然后求和。 #include iostream using namespace std; int main(){ double s; int i,j,n,a,b; i=1,b=0,s=0; coutinput a,n,0a=9endl; cinan; for(i=1;i=n;i++){ b=b*10+a; s=s+b; } coutsendl; return 0; } 3、编程求出所有的“水仙花数”。所谓“水仙花数”是指一个3位数,其中各位数字的立方和等于该数本身,例如153就是一个“水仙花数”, 因为153=13+53+33。要求采用枚举法。 #includeiostream using namespace std; int main(){ int a,b,c,i,count=0; for(i=100;i=999;i++){ a=i/100; b=i-a*100; b=b/10; c=i-a*100-b*10; if(i==a*a*a+b*b*b+c*c*c){ couti\t; count++; if(count%5==0)coutendl;}} return 0; } 5、设函数f(x)定义在区间[a,b]上,f(x)连续且满足f(a)*F(b)0,求f(x)在[a,b]上的根。 采用弦位法,迭代公式为: xi+1= xi+( xi-1- xi)/(f(xi)-f(xi-1))*f(xi) 其代换规律为:首先用两端点函数值的绝对值较大者的对应点作为x[i-1],较小者作为x[i],即如果 |f(a)||f(b)|,则xi←a,xi-1←b。用迭代公式得出xi+1,f(xi+1)。 误差定义为: ⊿x =( xi-1-xi/(f(xi)-f(xi-1))*f(xi) 当⊿x ε或f(xi+1)==0则结束运算。否则用(xi,f(xi))代替(xi-1,f(xi-1)),用(xi+1,f(xi+1)) 代替(xi ,f(xi)),继续迭代。 求方程 xlg(x)=1 的实根的近似值,要求误差不超过0.001。 【提示】 令 f(x)=xlgx-1 ,则f(2)≈-0.3980,而 f(3) ≈0.4310 ,由此可知f(x)的根在2与3之间 #includeiostream #includecmath using namespace std; const max=30; double a=2,b=3,ep=0.001; int main(){ int maxit,j; double x1,x2,temp,f1,f2,dx; f1=a*log10(a)-1; f2=b*log10(b)-1; if(f1*f2=0){ coutwrongendl; return 0; } if(fabs(f1)fabs(f2)){ x1=a; x2=b; } else{ x1=b; x2=a; temp=f1; f1=f2; f2=temp; } for(j=1;j=max;j++){ dx=(x1-x2)*f2/(f2-f1); coutdx; temp=

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档