两道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) { }
请写出完整程序。
展开
 我来答
ct_mywow
2013-04-15 · TA获得超过204个赞
知道小有建树答主
回答量:153
采纳率:0%
帮助的人:112万
展开全部
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;
}
对第二题的勒让德多项式不熟悉,所以我写只供参考,在自己多改尘做做研究吧
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式