前言
寒假在备赛蓝桥杯,做了一些题目,如有错误还望指正……
题目
如果x的x次幂结果为10(参见【图1.png】),你能计算出x的近似值吗?
显然,这个值是介于2和3之间的一个数字。
请把x的值计算到小数后6位(四舍五入),并填写这个小数值。
2.506184
注意:只填写一个小数,不要写任何多余的符号或说明。
答案
二分法,2.506184
代码
1 #include<iostream> 2 #include<cmath> 3 #include<stdio.h> 4 using namespace std; 5 int main() 6 { 7 double up=10,down=1,mid=5.5,cnt=0; 8 while(abs(log(mid)-1/mid)>0.000001){ 9 if(pow(mid,mid)-10>0){ 10 up=mid; 11 }else if(pow(mid,mid)-10<0) 12 { 13 down=mid; 14 } 15 printf("%.10f,%.10f,%.10f\n",down,up,pow(mid,mid)-10); 16 cnt++; 17 mid=(up+down)/2; 18 if(cnt>30) 19 break; 20 21 } 22 printf("%.6f",mid);//2.506184 23 return 0; 24 }
原文:https://www.cnblogs.com/memocean/p/12198002.html