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();
    }
}

代码解释:

  1. 错误修复:
    • 在计算M的N次方时,之前的代码错误地使用了M的值来控制循环次数,现已修正为使用N的值。
    • 之前的代码在输出结果时只输出了个位数,现已修正为输出完整结果。
  2. 代码改进:
    • 使用数组存储计算结果,可以处理更大的数字。
    • 添加了简单的菜单界面,方便用户使用。

希望这次修正能够满足您的需求。如果您有任何其他问题,请随时提出。

Java实现高精度M的N次方计算器

原文地址: https://www.cveoy.top/t/topic/QDm 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录