近似值问题

如果x的x次幂结果为10,你能计算出x的近似值吗?

请把x的值计算到小数后6位(四舍五入),并填写这个小数值。

float型可以表示6到7个有效数字,而double型可以表示15到16位有效数字

C++提供以下几种pow函数的重载形式:
double pow(double X,int Y);
float pow(float X,float Y);
float pow(float X,int Y);
long double pow(long double X,long double Y);
long double pow(long double X,int Y);

我一直考虑精度问题,后来发现double精度很高,需要用printf输出

//精度问题
//如果x的x次幂结果为10,你能计算出x的近似值吗? 
//3 到  4之间  请把x的值计算到小数后6位(四舍五入),并填写这个小数值。
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
    cout<<pow(2,3)<<endl;
    cout<<pow(3.3,3.3)<<endl;
    double x,y,z;
    double b=10.0;
//    x=3.0;
    x=0;
    double t=10.0;
    for(int i=1;i<=8;i++){
        t/=10.0;
//        cout<<"t="<<t<<endl;
    for(int j=1;j<=9;j++){
        z=x+t*j;
//        cout<<"z= "<<z<<endl;
        if(pow(z,z)>10.0){
//            cout<<"z"<<z<<endl;
            x+=t*(j-1);
//            cout<<"x="<<x<<endl
            break;
        }
    } 
}
 printf("%.6f",x);
} 
View Code
#include<iostream>
#include<cmath>
using namespace std; 
int main()
{
        for (double x = 2.0;x<3.0;x+=0.0000001){
            if (abs(pow(x,x)-10)<0.000001){
                printf("%.6f",x);
                break;
            }
        }
}
View Code

猜你喜欢

转载自www.cnblogs.com/helloworld2019/p/10383161.html
今日推荐