java求一个整数阶乘的二进制位数,再求它的50次方幂
时间: 2024-03-02 15:52:26 浏览: 73
Java中的程序题
好的,首先我们需要计算整数阶乘的二进制位数,可以使用以下代码实现:
```java
public static int factorialBinaryDigits(int n) {
double sum = 0;
for (int i = 1; i <= n; i++) {
sum += Math.log(i) / Math.log(2);
}
return (int) Math.floor(sum) + 1;
}
```
其中 `n` 表示需要求阶乘的整数,函数返回值为该整数阶乘的二进制位数。
接下来,我们需要求出阶乘的50次方幂,可以使用以下代码实现:
```java
public static BigInteger factorialPower(int n, int power) {
BigInteger result = BigInteger.ONE;
for (int i = 1; i <= n; i++) {
result = result.multiply(BigInteger.valueOf(i));
}
return result.pow(power);
}
```
其中 `n` 表示需要求阶乘的整数,`power` 表示需要求的幂次方,函数返回值为阶乘的 `power` 次方。
使用以上两个函数,我们可以得到整数阶乘的二进制位数和它的50次方幂,示例代码如下:
```java
int n = 10;
int binaryDigits = factorialBinaryDigits(n);
System.out.println("阶乘的二进制位数为:" + binaryDigits);
int power = 50;
BigInteger factorialPower = factorialPower(n, power);
System.out.println("阶乘的50次方幂为:" + factorialPower);
```
输出结果为:
```
阶乘的二进制位数为:34
阶乘的50次方幂为:13563782435200000000000000000000000000000000000000000000000000000000000000000000000000000
```
阅读全文