zoukankan      html  css  js  c++  java
  • 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<d; 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));
        }
    
    }

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

    输出结果如下:

  • 相关阅读:
    常见的数据交互之跳转页面传值
    一起学Python:正则表达式概述
    一起学Python:正则表达式概述
    一起学Python:网络通信过程
    一起学Python:网络通信过程
    Web静态服务器
    Web静态服务器
    一起学Python:协程
    洛谷P2868
    P1137 旅行计划
  • 原文地址:https://www.cnblogs.com/liyuanba/p/x-x----10.html
Copyright © 2011-2022 走看看