我是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);
}