题目描述
本题要求实现一个计算xn(n≥0)的函数。
函数接口定义:
double mypow( double x, int n );
函数mypow
应返回x
的n
次幂的值。题目保证结果在双精度范围内。
主函数参考代码如下:
#include <stdio.h>
double mypow( double x, int n );
int main()
{
double x;
int n;
scanf("%lf %d", &x, &n);
printf("%f\n", mypow(x, n));
return 0;
}
/* 你的代码将被嵌在这里 */
输入
0.24 4
输出
0.003318
本题有所小优化
//#include <iostream>
//
//using namespace std;
#include<stdio.h>
double x;
int n;
double f(double x, int M)
{
if(M==1)
return x;
if(M%2==0)
{
double ans=f(x, M/2);
return ans*ans;
}
else if(M%2==1)
{
double ans=f(x, (M-1)/2);
return ans*ans*x;
}
}
int main()
{
scanf("%lf%d", &x, &n);
double res=f(x, n);
printf("%lf", res);
return 0;
}