c++-使用欧几里得算法计算两个数的最大公约数-分别用递推和递归两种算法实现5_第1页
c++-使用欧几里得算法计算两个数的最大公约数-分别用递推和递归两种算法实现5_第2页
c++-使用欧几里得算法计算两个数的最大公约数-分别用递推和递归两种算法实现5_第3页
c++-使用欧几里得算法计算两个数的最大公约数-分别用递推和递归两种算法实现5_第4页
c++-使用欧几里得算法计算两个数的最大公约数-分别用递推和递归两种算法实现5_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验九一、实验内容教材3.9 定义递归函数实现下面的Ackman函数 n+1 m=0Acm(m,n)= Acm(m-1,1) n=0 Acm(m-1,Acm(m,n-1) n0,m0教材3.10 用递归法实现勒让德多项式: 1 n=0 Pn= x n=1 (2n-1)xPn-1(x)-(n-1)Pn-2(x)/n教程p24 使用欧几里得算法计算两个数的最大公约数,分别用递推和递归两种算法实现教程p26 编程:将上题以多文件方式组织,在area.h中声明各个area()函数原型,在area.cpp文件中定义函数,然后在Exp9_2中包含area.h,定义main()函数并执行。二、实验目的1、掌握函数的嵌套调用好递归调用2、掌握递归算法3、了解内联函数、重载函数、带默认参函数的定义及使用方法4、掌握程序的多文件组织5、掌握编译预处理的内容,理解带参数宏定义与函数的区别三、实验步骤教材3.9 定义递归函数实现下面的Ackman函数 n+1 m=0Acm(m,n)= Acm(m-1,1) n=0 Acm(m-1,Acm(m,n-1) n0,m0教材3.10用递归法实现勒让德多项式: 1 n=0 Pn= x n=1 (2n-1)xPn-1(x)-(n-1)Pn-2(x)/n教程p24 使用欧几里得算法计算两个数的最大公约数,分别用递推和递归两种算法实现教程p26 编程:将上题以多文件方式组织,在area.h中声明各个area()函数原型,在area.cpp文件中定义函数,然后在Exp9_2中包含area.h,定义main()函数并执行。四、实验数据及处理结果教材3.9#includeusing namespace std;int Acm(int m,int n)if(m=0) return n+1;else if(n=0) return Acm(m-1,1);else return Acm(m-1,Acm(m,n-1);int main()int a,b;coutplease imput two numbers:ab;coutAcm(a,b)=Acm(a,b)endl;return 0;教材3.10#includeusing namespace std;double P(int n,double x)if(n=0) return 1;if(n=1) return x;return (2*n-1)*x*P(n-1,x)-(n-1)*P(n-2,x)/n;int main()coutP(4,1.5)=P(4,1.5)endl;return 0;教程p24 实验八(2)递推法#includeusing namespace std;int max(int x,int y)return(x=y?x:y);int min(int a,int b)return(a=b?a:b);int main()int a,b,c,d,n;coutPlease imput tow numbersab;c=max(a,b);d=min(a,b);n=c%d;while(n!=0)c=d;d=n;n=c%d;cout最大公约数是dendl;return 0;递归法:#include using namespace std;int fun(int x, int y)if (x%y=0) return y; else return fun(y, x%y); int main( )int m, n, t, r;coutplease imput two numbersmn; if(mn) t=m; m=n; n=t; r=fun(m, n); cout最大公约数是:rendl; return 0;教材p26area.hdouble area(double radius=0);double area(double a,double b);double area(double a,double b,double h);double area(double a,double b,double c,int);area.cpp#include#define PI 3.14159double area(double radius)return PI *radius*radius;double area(double a,double b)return a*b;double area(double a,double b,double h)return (0.5*(a+b)*h);double area(double a,double b,double c,int)double s=0.5*(a+b+c);return sqrt(s*(s-a)*(s-b)*(s-c);exp9_2.cpp#include#include#includearea.husing namespace std;#define PI 3.14159int main()coutArea of point isarea()n;coutArea of square isarea(1,1)n;coutArea of trapezium isarea(1,0.5,1)n;coutArea of tri

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论