实验一三法求最大公约数实验报告电子版(已交).doc

实验一三法求最大公约数实验报告电子版(已交).doc

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

实验报告单闹卅劣二紆犯孚氏 实验报告单 Hubei University of Education 隧(驾)计算机学院 一、空無?的 (1) 复习数据结构课程的相关知识,实现课程间的平滑过渡; (2) 掌握并应用算法的数学分析和后验分析方法; (3) 理解这样一个观点:不同的算法能够解决相同的问题,这些算法的解题思路不同,复杂 程度彳、同,解题效率也彳、同。 机房 三、X血理(或爰求) (1)至少设计出三个版本的求最大公约数算法; (2) 对所设计的算法采用大0符号进行时间复杂性分析; (3) 上机实现算法,并用计数法和计时法分别测算算法的运行时间; (4) 通过分析对比,得出自己的结论。 源程序: #includestdio. h ^include〈time. h #includestdlib.h int max(int m, int n) { int r; 辻(mn) r=n; else return r; } void Menu() { int a; void algorithmone(); void algorithmtwoO ; void algorithmthree (); printf (〃请选择算法:\rT); printf (z,l.算法一\n); printf (z,2.算法二\n); printf (3.算法三\n); scanf (%d: a); getchar (); switch(a) { case 1:algorithmoneO ;break; case 2:algorithmtwoO ;break; case 3:algorithmthree():break; default:printf (请输入 1, 2, 3 中的一个! \n); } void algorithmone () 〃算法一 { clock_t start, finish; int m, n, r; char key; printff求两个数的最大公约数,请输入这两个数:); scanf (%d %d, m, n); getchar (); start=clock(); r=max (m, n); while(r0) { if(m%r==0) { if(n%r==0) { printff算法一求出的最大公约数为%d\『,r); finish=clock(); break; } else r=r~l; } else r=r~l; } printf (z,算法一所需的时间是:%ld 秒\n, (finish-start)); printf C是否返回主菜单? (y/n):); key=getchar(); switch(key) { case y : Menu (); break: case Y:Menu();break; case n :break; case N :break; defauIt:printf(^error!\n^); } } void algorithmtwo () //算法二 { clock_t start, finish; int m, n, r; char key; printff求两个数的最大公约数,请输入这两个数:); scanf (%d %d, m, n); start二clock (); while((r=m%n)!=0) r=m%n; 辻(r==0) { printff算法二求出的最大公约数为%d\『,n); finish=clock (); break; } } printf (z,算法二所需的时间是:%ld 秒\n, (finish-start)); getchar (); printf f是否返回主菜单? (y/n):); key=getchar(); switch(key) { case y :Menu():break; case Y : Menu (); break: case n :break; case N :break; default:printf (error! \n,z); } } //提取公共质数 //提取公共质数 { int i, j, k=0, common[3], d=0; for(i=0;i3;i++) for(j=0;j3;j++) if(arraym[i]==arrayn[j]) { common[k]=arraym[i ]; k=k+l; } for(k=0;k3;k++) for (d=k+l;d3;d++) if(common[k]==common[d]) common[d]=l; printf (z,算法三结果%d\n, common [0] *common [ 1 ] *common[2]); } void algorithmthree()

文档评论(0)

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

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

1亿VIP精品文档

相关文档