如果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); }
#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; } } }
原文:https://www.cnblogs.com/helloworld2019/p/10383161.html