首页 > 编程知识 正文

java求n次方,java中x的n次方怎么表示

时间:2023-05-03 19:55:54 阅读:191200 作者:3677

1.最简单也是效率最低的 for循环N次x的相乘 再次不做任何的解释
2.用递归来减半循环,A:当N为偶数的时候,(x^n/2)^2 B:当n为奇数的时,x(x^m)^2 C:n等于0 返回1 D:n等于1 返回x
3.使用位移,把n转化为二进制数,扫描每个二进制位,若为0则,则直接平方,若为1,否则平方后再乘以x。
第二种第三种具体实现如下:

代码块

代码块语法遵循标准markdown代码,例如:

public class X_n { public static void main(String args[]) { int x = power(3, 4); System.out.println(x); int x1 = powerByBinary(3, 5); System.out.println(x1); } /** * 第二种方法:把n转化为二进制数,扫描每个二进制位,若为0则,则直接平方,否则平方后再乘以x * * @param x * @param n * @return */ private static int powerByBinary(int x, int n) { if (n == 0 ) { return 1; } if (n == 1 ) { return x; } int y = 1; String str = Integer.toBinaryString(n); for (int a = 0; a < str.length(); a++) { // char类型转化为int int s = Integer.parseInt(String.valueOf(str.charAt(a))); y = y * y; System.out.println("=============== "); System.out.println("y * y = " + y); if (s == 1) { y = y * x; System.out.println("y * x = " + y); } } return y; } /** * 第一种方法:采用递归的方法,x的n次方,若n为偶数,则x的n次方等于(x^n/2)^2,否则等于x(x^m)^2 * * @param x * @param n * @return */ private static int power(int x, int n) { int result = 0; if (n == 0) { result = 1; } else { result = power(x, n / 2); result = result * result; if (n % 2 != 0) { result = x * result; } } return result; }}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。