C++ 开n次方的函数
在c++中有没有那种开n次方的库函数?有的话,求头文件和原型、用法;如果没有,求自己编写的代码...
在c++中有没有那种开n次方的库函数?有的话,求头文件和原型、用法;如果没有,求自己编写的代码
展开
3个回答
推荐于2016-04-30
展开全部
可用迭代法逼近:
#include <stdio.h>
#include <string.h>
#include <math.h>
double mysqrt(double n)
{
double x1 = 1;
double x2;
do {
x2 = x1;
x1 = x1 - (x1*x1-n) / (2*x1);
} while(fabs(x2-x1) > 1e-6);
return x1;
}
int main(void) {
printf("%f", mysqrt(9));
}
//////cabs.
n次方根:
#include <stdio.h>
#include <math.h>
#define eps 1e-8
double nthroot(double x, double n)
{
double x1 = 1;
double x2;
do {
x2 = x1;
x1 = x1 - (pow(x1,n)-x) / (n*pow(x1, n-1));
} while(fabs(x2-x1) > eps);
return x1;
}
int main(void) {
printf("%f\n", nthroot(64, 3));
printf("%f\n", nthroot(36, 2));
printf("%f\n", nthroot(10000, 4));
}
#include <stdio.h>
#include <string.h>
#include <math.h>
double mysqrt(double n)
{
double x1 = 1;
double x2;
do {
x2 = x1;
x1 = x1 - (x1*x1-n) / (2*x1);
} while(fabs(x2-x1) > 1e-6);
return x1;
}
int main(void) {
printf("%f", mysqrt(9));
}
//////cabs.
n次方根:
#include <stdio.h>
#include <math.h>
#define eps 1e-8
double nthroot(double x, double n)
{
double x1 = 1;
double x2;
do {
x2 = x1;
x1 = x1 - (pow(x1,n)-x) / (n*pow(x1, n-1));
} while(fabs(x2-x1) > eps);
return x1;
}
int main(void) {
printf("%f\n", nthroot(64, 3));
printf("%f\n", nthroot(36, 2));
printf("%f\n", nthroot(10000, 4));
}
追问
有原理吗?为什么是这样呢
有了原理我就采纳了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
math.h
pow(int x,int y)x的y次方
开二次方就是pow(x,1/2);
x是常数
pow(int x,int y)x的y次方
开二次方就是pow(x,1/2);
x是常数
追问
pow(int x,int y)是x的y次方
开二次方就是pow(x,1/2);
可是原型中y是整数
所以应该不行
追答
上边打错了抱歉
里边可以是double型的
函数原形是:double pow(double x,double y);
这个是库提供的函数原型,你可以试试,
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询