3

我正在尝试编写一个程序来打印数字 2 的指数结果,并且我想将其打印 10 次。我想创建一个使用 Math.pow(x,y) 方法计算指数值的方法。

2 的 0 次方 = 1
2 的 1 次方 = 2
2 的 2 次方 = 4

我有一些问题。你能像我在下面那样在 for 循环中使用 Math.pow 方法吗?如何在 for 循环内的 Math.pow(x, y) 方法中声明 x 和 y 的值,还是必须在 for 循环外进行?此外,在 Eclipse 的 raiseIntPower 方法中,当我使用 int n 作为参数时,它会给我一个“重复的局部变量错误”。我的理解是方法参数指定了方法需要的参数。我不明白那个重复错误的含义。

import acm.program.*;


public class Exponents extends ConsoleProgram {

  public void run(){
      for (int n = 0; n <= 10; n++) {

            println("2 to the power of " + n + " = " + raiseIntPower(n)); 

     } 

  }
private int raiseIntPower (int n){
   int total = 0;
   for( int n = 0; n <= 10; n++){
     total = Math.pow(2, n);

  } 

return total; 
  }
}
4

4 回答 4

7

我不明白你想做什么

只需替换语句

println("2 to the power of " + n + " = " + raiseIntPower(n)); 

println("2 to the power of " + n + " = " + Math.pow(2,n)); 

它应该这样做,不需要raiseIntPower()

我认为您对 的用法感到困惑Math.pow(),请参阅此处以获取说明Math.pow()

于 2012-10-30T07:49:56.493 回答
1

Math#pow(double a, double b)其中a是底数,b是指数,它返回双精度,所以如果你想放弃精度,那么你必须格式化返回值。 ab

您可以删除 raiseIntPower 方法。

for (int n = 0; n <= 10; n++) {
     println("2 to the power of " + n + " = " + Math.pow(2,n)); 
} 
于 2012-10-30T07:48:14.433 回答
0

检查这个

import acm.program.*;

public class Exponents extends ConsoleProgram {

  public void run(){
      for (int n = 0; n <= 10; n++) {

            println("2 to the power of " + n + " = " + raiseIntPower(n)); 

     } 

  }
private int raiseIntPower (int n){
   int total = 0;   
   total = (int)Math.pow(2, n);

   return total; 
  }
}
于 2012-10-30T13:04:13.387 回答
0

Eclipse 给你一个“重复的局部变量错误”,因为有一个重复的变量。

private int raiseIntPower (int n){
    int total = 0;
    for( int n = 0; n <= 10; n++){
        total = Math.pow(2, n);
    } 
    return total; 
}

您声明了一个变量 n 用于输入。在 for 循环中,您声明了另一个变量 n。for 循环中对其的int nand 引用应更改为另一个名称,例如int i.

于 2012-12-13T05:02:46.493 回答