x 的 x 次方等于10,求 x

x 的 x 次方等于10,求 x

当 x 的 x 次方为10时,求 x 的值,精确到小数位后9位

过程如下:

2 的 2 次方 小于 10;

3 的 3 次方 大于 10;

因此 x 在 2 到 3 之间。

找出整数部分后,需要计算出小数部分,然后把两部分加到一个串里即可(可以以串的形式输出,也可以转成浮点数输出,下面的程序是以串的形式输出的)。

用试探法来做,过程如下:

小数点后第一位,从 0 开始,加在整数部分后面组成一个新数 y,如果 y 的 y 次方小于 10,把 0 去掉,加上 1,......

依次往下加,直到 y 的 y 次方大于 10,即可确定 x 的小数部分的第一位为当前数字的前一位。

例如:

2.1 的 2.1 次方 小于 10;

2.2 的 2.2 次方 小于 10;

……

2.5 的 2.5 次方 小于 10;

2.6 的 2.6 次方 大于 10;

因此,小数第一位是 5,当前 x 为 2.5……。

同理,即可求出小数部分的第 2 到 9 位。

程序如下:

//2017.03.16 by 迷糊狐狸

public class Test {

static String s = "";

static String f(double d){

for(int i=1; i

if(Math.pow(i, i)>=d){

s = f(9, i-1, d);

break;

}

}

s = s.charAt(0) + "." + s.substring(1);

return s;

}

static String f(int k, int n, double p){

s = s + n;

if(k<=0)return s;

String s1 = s.charAt(0) + "." + s.substring(1);

String s2 = "";

for(int i=1; i<=10; i++){

double d = Double.parseDouble(s1 + i);

if(Math.pow(d, d)>p){

s2 = f(k-1, i-1, p);

s = n + f(k-1, i-1, p);

break;

}

}

s = s2;

return s;

}

public static void main(String[] args) {

String s = f(10);

System.out.println(s);

double d = Double.parseDouble(s);

System.out.println(Math.pow(d, d));

}

}

该程序的后一个输出为检验第一个结果所用。

输出结果如下:

相关文章

连尚读书网
下载bst365

连尚读书网

10-11 阅读: 1785
防撞性能最好的车排名
365安卓版

防撞性能最好的车排名

10-08 阅读: 5159
真空保温板应该如何安装
365安卓版

真空保温板应该如何安装

06-29 阅读: 6236
「Canon Cp760」精選商品優惠價格
365安卓版

「Canon Cp760」精選商品優惠價格

10-03 阅读: 2236
图文-巴西主帅斯科拉里公布巴西队23人世界杯名单
《GQ》年度最时尚“女神”榜单TOP10,是谁力压Hailey等众“美”斩下第一顺位?