Java实现高精度M的N次方计算器
Java实现高精度M的N次方计算器
在之前的文章中,我们分享了一个计算M的N次方的Java代码示例。但是,代码中存在一些错误。非常抱歉给您带来的困扰,我们已经修复了这些错误,并对代码进行了改进。
以下是修复后的代码:
import java.util.Scanner;
public class PowerCalculator {
private int[] result;
public PowerCalculator() {
result = new int[1000];
}
public void calculatePower(int m, int n) {
result[0] = 1;
for (int i = 1; i <= n; i++) {
for (int j = 0; j < result.length - 1; j++) {
result[j] *= m;
}
for (int j = 0; j < result.length - 1; j++) {
if (result[j] >= 10) {
result[j + 1] += result[j] / 10;
result[j] %= 10;
}
}
}
}
public int getResult(int index) {
return result[index];
}
public void runMenu() {
Scanner scanner = new Scanner(System.in);
int m, n;
do {
displayMenu();
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(m, n);
System.out.print('计算结果:');
for (int i = result.length - 1; i >= 0; i--) {
if (result[i] != 0 || i == 0) {
System.out.print(result[i]);
}
}
System.out.println();
break;
case 2:
System.out.println('退出程序。');
return;
default:
System.out.println('无效的操作编号,请重新输入。');
break;
}
System.out.println();
} while (true);
}
public void displayMenu() {
System.out.println('计算M的N次方功能菜单:');
System.out.println('1-计算M的N次方');
System.out.println('2-退出');
}
public static void main(String[] args) {
PowerCalculator calculator = new PowerCalculator();
calculator.runMenu();
}
}
代码解释:
- 错误修复:
- 在计算M的N次方时,之前的代码错误地使用了M的值来控制循环次数,现已修正为使用N的值。
- 之前的代码在输出结果时只输出了个位数,现已修正为输出完整结果。
- 代码改进:
- 使用数组存储计算结果,可以处理更大的数字。
- 添加了简单的菜单界面,方便用户使用。
希望这次修正能够满足您的需求。如果您有任何其他问题,请随时提出。
原文地址: https://www.cveoy.top/t/topic/QDm 著作权归作者所有。请勿转载和采集!