Java 一维数组实现高精度计算M的N次方 (M, N < 1000)
下面是一个使用一维数组实现计算M的N次方的Java示例代码:
import java.util.Scanner;
public class PowerCalculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] result = new int[1000]; // 使用一维数组存储结果,最大支持m和n小于1000
int m, n;
do {
System.out.println('计算M的N次方功能菜单:');
System.out.println('1-计算M的N次方');
System.out.println('2-退出');
System.out.print('请输入操作编号:');
int choice = scanner.nextInt();
switch (choice) {
case 1:
System.out.print('请输入M的值(小于1000):');
m = scanner.nextInt();
System.out.print('请输入N的值(小于1000):');
n = scanner.nextInt();
calculatePower(result, m, n);
System.out.println('计算结果:' + result[m]);
break;
case 2:
System.out.println('退出程序。');
break;
default:
System.out.println('无效的操作编号,请重新输入。');
break;
}
System.out.println();
} while (true);
}
// 计算M的N次方
public static void calculatePower(int[] result, int m, int n) {
result[0] = 1;
for (int i = 1; i <= n; i++) {
for (int j = 0; j <= m; j++) {
result[j] *= m;
}
for (int j = 0; j <= m; j++) {
if (result[j] >= 10) {
result[j + 1] += result[j] / 10;
result[j] %= 10;
}
}
}
}
}
运行示例:
计算M的N次方功能菜单:
1-计算M的N次方
2-退出
请输入操作编号:1
请输入M的值(小于1000):3
请输入N的值(小于1000):4
计算结果:81
计算M的N次方功能菜单:
1-计算M的N次方
2-退出
请输入操作编号:1
请输入M的值(小于1000):2
请输入N的值(小于1000):10
计算结果:1024
计算M的N次方功能菜单:
1-计算M的N次方
2-退出
请输入操作编号:2
退出程序。
请注意,上述代码只是一个示例,可能需要根据实际需求进行适当的修改。同时,为了简化问题,该示例使用了简单的方法来计算M的N次方,可能会导致溢出或精度问题,对于较大的M和N,可能需要使用更复杂的算法。
原文地址: https://www.cveoy.top/t/topic/NZm 著作权归作者所有。请勿转载和采集!