精华内容
下载资源
问答
  • 3、掌握使用java程序进行二分法计算a的n次幂。实验步骤:1、由用户输入a及n(均为整数);2、利用二分法完成计算,并将中间结果打印出来。package erfencimi;import java.util.Scanner;public class Power {public ...

    实验目的:

    1、复习java编程;

    2、掌握二分法的基本原理;

    3、掌握使用java程序进行二分法计算a的n次幂。

    实验步骤:

    1、由用户输入a及n(均为整数);

    2、利用二分法完成计算,并将中间结果打印出来。

    package erfencimi;

    import java.util.Scanner;

    public class Power {

    public static void main(String[] args) {

    Scanner scanner = new Scanner(System.in);

    //输入a和n数值

    System.out.print("请输入 a 的值:");

    int a = scanner.nextInt();

    System.out.print("请输入 n 的值:");

    int n = scanner.nextInt();

    int c=0;

    System.out.println("a = " + a + "\t" + "n = " + n);

    //打印输出二分过程

    for(int b=1;b<=n;n=n/2)

    {

    System.out.println(a + "的" + n + "次方为(第"+c+"次二分):" + function(a, n));

    c++;

    }

    c=c-1;

    //二分次数总计

    System.out.println("总共进行了" + c + "次二分!");

    }

    //求二分次幂函数

    private static long function(int a, int n) {

    if(n == 1) { //指数是1时直接返回数字a

    return a;

    } else {

    if(n % 2 == 0) {//如果是偶数次幂直接将指数进行二分

    return (int)Math.pow(function(a, n/2), 2);

    } else {//如果是奇数次幂将指数减一再进行二分

    return (int)Math.pow(function(a, (n-1)/2), 2) * a;

    }

    }

    }

    }

    运行结果如下:

    3f46cbbcc98cf32388ef49de7537e573.png

    展开全文
  • Java实现N的N次幂

    万次阅读 多人点赞 2019-07-20 18:08:48
    如果xx次幂结果为10(参见【图1.png】),你能计算出x近似值吗? 显然,这个值是介于2和3之间一个数字。 请把x计算到小数后6位(四舍五入),并填写这个小数值。 注意:只填写一个小数,不要写任何多余...

    如果x的x次幂结果为10(参见【图1.png】),你能计算出x的近似值吗?

    显然,这个值是介于2和3之间的一个数字。

    请把x的值计算到小数后6位(四舍五入),并填写这个小数值。

    注意:只填写一个小数,不要写任何多余的符号或说明。

    答案:2.506184

    在这里插入图片描述

    public class Main {
        
        public static double min = 10;
        
        public static void main(String[] args) {
            double result = 0;
            for(double i = 2.5;i <= 2.6;i = i + 0.00000001) {
                double r = Math.abs(10 - Math.pow(i, i));
                if(min > r) {
                    min = r;
                    result = i;
                }
            }
            System.out.printf("%.6f", result);
            System.out.println("\n"+result);
            System.out.println(Math.pow(result, result));
        }
        
    }
    
    展开全文
  • 1024.00000示例2:输入: 2.10000, 3输出: 9.26100示例3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/powx-npublic double myPow(d...

    示例 1:

    输入: 2.00000, 10

    输出: 1024.00000

    示例 2:

    输入: 2.10000, 3

    输出: 9.26100

    示例 3:

    输入: 2.00000, -2

    输出: 0.25000

    解释: 2-2 = 1/22 = 1/4 = 0.25

    来源:力扣(LeetCode)

    链接:https://leetcode-cn.com/problems/powx-n

    public double myPow(double x, int n) {

    //核心思想主要还是折半,把原本比较大的这个幂变成原来的一半,这样结果就可以通过这个一半的幂相乘来组成了

    if (n == 0) {//任何数的0次幂都是1

    return 1;

    }

    //把这个问题转换成更小的问题进行解决

    double half = myPow(x,n/2);

    //如果是个偶数的话,就正好是一半幂的乘积

    if (n%2 == 0) {

    return half*half;

    }

    //如果是奇数并且n>0的话

    if(n > 0) {

    return half*half*x;

    }

    return half*half/x;

    }

    经典的把一个相对较大的问题使用折半的方法转换成较小的问题,代码注释中也写明了解释。

    还有另一种相同的思想,只是用循环来实现的,如下:

    public double myPow(double x, int n) {

    double res = 1.0;

    int i = n;

    while (i != 0) {

    //如果是奇数,那么还要多乘一个x

    if (i%2 != 0) {

    res *= x;

    }

    //偶数直接自我平方

    x *= x;

    //折半

    i /= 2;

    }

    //判断n的正负来返回正确答案

    return n < 0 ? 1/res : res;

    }

    展开全文
  • 输入: 2.00000, 10 输出: 1024.00000 示例2: 输入: 2.10000, 3 输出: 9.26100 示例3: 输入: 2.00000, -2 输出: 0.25000 解释: 2-2 = 1/22 = 1/4 = 0.25 来源:力扣(LeetCode)链接:...
    示例 1:
    
    输入: 2.00000, 10
    输出: 1024.00000
    示例 2:
    
    输入: 2.10000, 3
    输出: 9.26100
    示例 3:
    
    输入: 2.00000, -2
    输出: 0.25000
    解释: 2-2 = 1/22 = 1/4 = 0.25

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/powx-n
     

    public double myPow(double x, int n) {
            //核心思想主要还是折半,把原本比较大的这个幂变成原来的一半,这样结果就可以通过这个一半的幂相乘来组成了
            if (n == 0) {//任何数的0次幂都是1
                return 1;
            }
            //把这个问题转换成更小的问题进行解决
            double half = myPow(x,n/2);
            //如果是个偶数的话,就正好是一半幂的乘积
            if (n%2 == 0) {
                return half*half;
            }
            //如果是奇数并且n>0的话
            if(n > 0) {
                return half*half*x;
            }
            return half*half/x;
        }

    经典的把一个相对较大的问题使用折半的方法转换成较小的问题,代码注释中也写明了解释。

    还有另一种相同的思想,只是用循环来实现的,如下:

    public double myPow(double x, int n) {
            double res = 1.0;
            int i = n;
            while (i != 0) {
                //如果是奇数,那么还要多乘一个x
                if (i%2 != 0) {
                    res *= x;
                }
                //偶数直接自我平方
                x *= x;
                //折半
                i /= 2;
            }
            //判断n的正负来返回正确答案
            return n < 0 ? 1/res : res;
        }

     

    展开全文
  • 实现pow(x, n),即计算 x n 次幂函数(即,xn)。 示例 1: 输入:x = 2.00000, n = 10 输出:1024.00000 示例 2: 输入:x = 2.10000, n = 3 输出:9.26100 示例 3: 输入:x = 2.00000, n = -2 ...
  • 3、掌握使用java程序进行二分法计算a的n次幂。实验步骤:1、由用户输入a及n(均为整数);2、利用二分法完成计算,并将中间结果打印出来。 package erfencimi; import java.util.Scanner; public class Power {...
  • 计算x的n次幂函数。 -100.0 < x < 100.0 n 是 32 位有符号整数,其数值范围是 [−2^31, 2^31 − 1] 。 解析: 负数的边界 -2^31 , 直接转正数会越界。 正数边界2^31 − 1,负数转正2^31,越界。 所以将n的...
  • 例如,首先输入 2 4就是计算2的4次方,如果出现负数,则抛出异常 代码如下: import java.util.*; import java.util.Scanner; class MyCalculator { long power(int n, int p) throws Exception { if (n &...
  • 因为所有数在内存中都是以二进制存放,故直接对数二进制位进行操作非常快,比如乘法、除2操作:通过左右移二进制位即可,无需将数转为十进制后再通过加法完成(乘法本质是由加法实现Java位运算简单实现: /...
  • 矩阵高次幂的实用计算方法(Ⅰ)全生寅【摘要】本文就矩阵高次幂An的计算问题作了一些探讨,总结出多种实用的计算方法.特别考察了矩阵Sn=E+A+A2+…+An,当n取充分大时Sn"极限"行为.【期刊名称】《青海大学学报(自然...
  • 将基数本身乘以基数,再将结果乘以基数(再次)重复n次,其中n是指数值。2^5=2X2X2X2X2(5times)示例importjava.util.Scanner;publicclassPowerOfNumber{publicstaticvoidmain(Stringargs[]){Scannersc=newScanner...
  • 实现pow(x,n),即计算 x n 次幂函数。 示例 1: 输入: 2.00000, 10 输出: 1024.00000 示例2: 输入: 2.10000, 3 输出: 9.26100 示例3: 输入: 2.00000, -2 输出: 0.25000 解释: 2-2 = 1/22 = 1/4 = 0.25 ...
  • java:(a+b)的n次幂的展开式中各项的系数很有规律 对于n=2,3,4时分别是: 1 2 1, 1 3 3 1, 1 4 6 4 1. 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 下列的程序给出了计算第m层的第n个系数的计算方法,试完善之...
  • 面试遇到了一个问题,是自己实现一个pow(x,n)函数返回一个值,是x的n次幂,回想当时回答的不好,就是死板的直接while 一直乘下去,面试官始不太满意,我想也是,这也太简单了,可是当时死活也想不出怎么优化,刚一...
  • 代码: 1 import java.util.*; 2 public class Main { 3 public static void main (String [] args) { 4 Scanner s=new Scanner(System.in); 5 double x=s.nextDouble(); ...
  • 7-1 计算n位(3≤n≤7)水仙花数 (15分)水仙花数(Narcissistic number)也被称为超完全数字不变数... 水仙花数是指一个 n 位数(n≥3 ),它每个位上数字 n 次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153;...
  • 算法主要用到了两个公式 ...//计算Ap次幂,Math.pow(A,p) public static float RaiseToPower(float A,int p) { //将迭代数存在数组里 float sum = 1; float[] a = new float[p]; a[1] ...
  • 实数整数次幂java实现)

    千次阅读 2020-01-20 12:25:27
    就是底数乘积,如果直接暴力破解时间复杂度为O(N) 下面是两种优化算法 解法一:递归(时间复杂度O(NlogN)) 原理: 求x^n: 如果n是偶数,则计算x^(n/2) * x^(n/2); 如果n是奇数,则计算x^(n/2) * ...
  • 为何每次扩容都是2的n次幂 hashMap table的长度为2^n 原因 jdk1.8的index索引计算方法为 (table的长度-1)&key的hash值 (1)扩容时要么是元索引位置、要么是源索引位置+原数组长度、可以减少重算hash。 下...
  • 如何快速的算出一个矩阵的N次幂呢,举个例子,比如A^19 => (A^16)*(A^2)*(A^1)显然采取这样的方式计算时因子数将是log(n)级别的(原来的因子数是n),不仅这样,因子间也是存在某种联系的。 比如A^4能通过(A^2)*(A^...
  • 代码: 1 import java.util.*; 2 public class Main { 3 public static void main (String [] args) { 4 int repeat,n; 5 double x; 6 Scanner s=new Scanner(Sys...
  • 说实话,自己是第一次接触到快速幂这种东西,觉得有必要记录下来。题意:计算a^n % b,其中a,b和n都是32位...快速幂快速幂,顾名思义就是快速次幂,例如:a^b,普通算法就是累乘,这样的计算方法时间复...
  • 实现 pow(x, n) ,即计算 x n 次幂函数。 示例 1: 输入: 2.00000, 10 输出: 1024.00000 示例 2: 输入: 2.10000, 3 输出: 9.26100 示例 3: 输入: 2.00000, -2 输出: 0.25000 解释: 2-2 = 1/22 = 1/4 = 0.25 ...
  • hashMap容量问题: hashMap是通过key的hash运算,解决key在哪,在java8中,key的...n2的整数倍,那么n-1就是一个奇数,奇数的最后一位肯定为1. 为1的好处就是(n-1) & hash的值后一位为0或者为1,如果n不是...
  • 矩阵快速幂的JAVA实现

    千次阅读 2017-02-10 21:36:29
    **如何快速的算出一个矩阵的N次幂呢,举个例子,比如A^19 => (A^16)*(A^2)*(A^1)显然采取这样的方式计算时因子数将是log(n)级别的(原来的因子数是n),不仅这样,因子间也是存在某种联系的。 比如A^4能通过(A^...
  • 快速幂:顾名思义就是快速的求一个数的n次幂。例如:an,直接的算法就是累乘,这样的计算方法时间复杂度为O(n)。而快速幂可以降低时间复杂度至O(log(n))。 那么快速幂是如何降低时间复杂度的呢? 接下来我举个例子,...
  • Java 算法-快速

    2019-10-01 14:51:45
     快速幂,顾名思义就是快速次幂,例如:a^b,普通算法就是累乘,这样的计算方法时间复杂度就是O(n),而快速幂方法使得次幂的计算方法时间复杂度降低到O(logn).  假设我们要求a^b结果,这里我们可以将...
  • java 算法-快速

    2019-03-01 21:43:49
    java 算法-快速 ...计算a^n % b,其中a,b和n都是32位整数。 样例: 例如 2^31 % 3 = 2 例如 100^1000 % 1000 = 0 挑战: O(logn) 1.解题思路 在介绍这个题解题思路之前,我先来简单介绍...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 124
精华内容 49
关键字:

java计算2的n次幂

java 订阅