两道c++基础问题
(4)已知main函数如下:voidmain(){doublea=5.0;intn=5;cout<<mpow(a,n);<<endl;}函数调用语句mpow(a,n);用...
(4)
已知main函数如下:
void main()
{
double a=5.0;int n=5;
cout<< mpow(a,n);<<endl ;
}
函数调用语句mpow(a,n);用以求a的n次方。
请编写double mpow(double x,int y)函数。并写出完整程序
(5) 以下函数的功能是递归方法计算x的n阶勒让德多项式的值。已有调用语句p(n,x);请编写p函数。递归公式如下:
1 (n=0)
Pn(x)= x (n=1)
((2n-1)*x* Pn-1(x)-(n-1)* Pn-2(x))/n (n>1)
float p(int n,int x) { }
请写出完整程序。 展开
已知main函数如下:
void main()
{
double a=5.0;int n=5;
cout<< mpow(a,n);<<endl ;
}
函数调用语句mpow(a,n);用以求a的n次方。
请编写double mpow(double x,int y)函数。并写出完整程序
(5) 以下函数的功能是递归方法计算x的n阶勒让德多项式的值。已有调用语句p(n,x);请编写p函数。递归公式如下:
1 (n=0)
Pn(x)= x (n=1)
((2n-1)*x* Pn-1(x)-(n-1)* Pn-2(x))/n (n>1)
float p(int n,int x) { }
请写出完整程序。 展开
1个回答
展开全部
1.
double mpow(double x, int y){
double temp = x;
if(y==0)
return 1;
else if(y>1) {
for(int i=0;i<y-1;i++)
x *= temp;
}
else if (y < 0) {
for(int i=0;i<y-1;i++)
x *= temp;
x = 1/temp;
}
return x;
}
没运行过,觉得逻辑上应该没伏歼谈错,比较担忧会不会有返回本地变量缺碰的错误
2.
float p(int n, int x){
if(n==0)
x = 1
else if(n==1)
x = x;
else if (n>1)
x = (2*n-1)*x*p(n-1,x)-(n-1)*p(n-2,x)/n;
return x;
}
对第二题的勒让德多项式不熟悉,所以我写只供参考,在自己多改尘做做研究吧
double mpow(double x, int y){
double temp = x;
if(y==0)
return 1;
else if(y>1) {
for(int i=0;i<y-1;i++)
x *= temp;
}
else if (y < 0) {
for(int i=0;i<y-1;i++)
x *= temp;
x = 1/temp;
}
return x;
}
没运行过,觉得逻辑上应该没伏歼谈错,比较担忧会不会有返回本地变量缺碰的错误
2.
float p(int n, int x){
if(n==0)
x = 1
else if(n==1)
x = x;
else if (n>1)
x = (2*n-1)*x*p(n-1,x)-(n-1)*p(n-2,x)/n;
return x;
}
对第二题的勒让德多项式不熟悉,所以我写只供参考,在自己多改尘做做研究吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询