首页 > 其他 > 详细

近似值问题

时间:2019-02-15 21:03:54      阅读:166      评论:0      收藏:0      [点我收藏+]

如果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

 

近似值问题

原文:https://www.cnblogs.com/helloworld2019/p/10383161.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!