题目1(此题用c++的小数表示方式显示):
如果x的x次幂结果为10(参见【图1.png】),你能计算出x的近似值吗?
显然,这个值是介于2和3之间的一个数字。
请把x的值计算到小数后6位(四舍五入),并填写这个小数值。
注意:只填写一个小数,不要写任何多余的符号或说明。
答案:2.506184
代码:
#include<iostream>
#include<iomanip>
#include<cmath>
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<<fixed<<setprecision(6)<<mid<<endl; //保留 6 位小数
}
c++小数表示方式总结:
1.要有头文件#include <iomanip>
2.题目要求精确到6位小数,那么误差要小于1e-7
3.显示小数时:cout<<fixed<<setprecision(6)<<endl; //这个是显示保留6为小数的语句
题目2(此题用c的小数表示方式表示):
无穷分数
无穷的分数,有时会趋向于固定的数字。
请计算【图1.jpg】所示的无穷分数,要求四舍五入,精确到小数点后5位,小数位不足的补0。
请填写该浮点数,不能填写任何多余的内容。
答案:0.58198
#include<stdio.h>
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位小数