我是Java和stackoverflow的新手。我正在编写一个可以在Java中增加功能的程序,例如:2 ^ 1、2 ^ 1 + 2 ^ 2、2 ^ 1 + 2 ^ 2 + 2 ^ 3等。

我写了下面的程序,当我尝试添加功能时,我不知道我在做什么错。我只是得到2 ^ 1 2 ^ 2 2 ^ 3,...作为输出。希望您能从我的代码中得到启发,如果你们可以帮助我学习,它将对您有很大的帮助。

先感谢您!

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.print("Enter a: ");
    int a = sc.nextInt(); //a = first number
    System.out.print("Enter b: ");
    int b = sc.nextInt(); //b = second number
    System.out.print("Enter t: ");
    int t = sc.nextInt(); //t = no. of iterations

    int x=0, sum = 0;

    for (int i = 0; i < t;) {

        for (int j = 0; j < t; j++) {
            int pow = (int) Math.pow(2, i);
            x = a + (pow * b);

            i++;

            System.out.printf("%d ", x);
            sum = x;
        }

        sum = x + sum;

        System.out.println(sum);
    }
}

最佳答案

根据数学规则,如果它是数字之间的加法,例如2^1 + 2^2 + 2^3 + 2^4...,那么很简单,您不需要两个循环和t变量。您只需要基数和最后一个指数限制。

public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Enter the base: ");
        int a = sc.nextInt(); //a = first number
        System.out.print("Enter iterations: ");
        int b = sc.nextInt(); //b = No of iterations
        int sum = 0;
        for (int i = 1; i <= b; i++) {
            sum += Math.pow(a, i);
        }
        System.out.println("The sum is " + sum);
    }


但是,如果数字之间存在乘法,则如果基数相同,则将添加指数。 Fox示例2^1 * 2^2 * 2^3 * 2^4....然后,您可以按照以下步骤进行操作。

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.print("Enter the base: ");
    int a = sc.nextInt(); //a = first number
    System.out.print("Enter iterations: ");
    int b = sc.nextInt(); //b = No of iterations
    Double res;
    int powerSum = 0;
    for (int i = 1; i <= b; i++) {
        powerSum += i;
    }
    System.out.println("Power sum is " + powerSum);
    res = Math.pow(a, powerSum);
    System.out.println("The result is " + res);
}

10-08 03:20