C/C++|小数的处理

题目1(此题用c++的小数表示方式显示):
如果x的x次幂结果为10(参见【图1.png】),你能计算出x的近似值吗?
显然,这个值是介于2和3之间的一个数字。
请把x的值计算到小数后6位(四舍五入),并填写这个小数值。
注意:只填写一个小数,不要写任何多余的符号或说明。

答案:2.506184
代码:

#include #include #include using namespace std; int main() { long double a=2.0,b=3.0,mid=1,aa,bb,cc=1.0; //a-----mid-----b 。 aa, bb, cc存的是与 10.0的差值 while(fabs(cc)>1e-7)//答案要精确到 6 位小数,即误差要小于 1e-7 { mid=(a+b)/2.0; //二分的 mid aa=pow(a,a)-10.0; bb=pow(b,b)-10.0; cc=pow(mid,mid)-10.0; if(aa*cc < 0)//如果 aa * cc < 0 说明 aa是 < 0的 ,从而说明 aa < 10.0,即答案范围在 a~mid 中 b=mid; else if (cc*bb < 0) //如果 cc * bb < 0 说明 cc是 < 0的 ,从而说明 cc < 10.0,答案范围在 mid~b 中 a=mid; cc=pow(mid,mid)-10.0; } cout<
c++小数表示方式总结:
1.要有头文件#include
2.题目要求精确到6位小数,那么误差要小于1e-7
【C/C++|小数的处理】3.显示小数时:cout<


题目2(此题用c的小数表示方式表示):
无穷分数
无穷的分数,有时会趋向于固定的数字。
请计算【图1.jpg】所示的无穷分数,要求四舍五入,精确到小数点后5位,小数位不足的补0。
C/C++|小数的处理
文章图片


请填写该浮点数,不能填写任何多余的内容。

答案:0.58198



#include double fenshu(double n) { if(n==100) return n; return n/(n+fenshu(n+1)); } int main() { double ans=fenshu(1.0); printf("%.5lf \n",ans); return 0; }


c小数表示方式总结:
printf("%.5f\n", ans); //里面的 .5表示保留5位小数

    推荐阅读