【问题标题】:Writing a program calculating exponents编写一个计算指数的程序
【发布时间】:2012-10-30 07:43:37
【问题描述】:

我正在尝试编写一个程序来打印数字 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; 
  }
}

【问题讨论】:

  • println("2 的 " + n + " = " + Math.pow(2, n));
  • 我希望 raiseIntPower 方法计算 2 的指数的结果,并且我希望指数的值增加 1 直到达到 10。

标签: java math


【解决方案1】:

我不明白你想做什么

只需替换语句

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

【讨论】:

    【解决方案2】:

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

    您可以删除 raiseIntPower 方法。

    for (int n = 0; n <= 10; n++) {
         println("2 to the power of " + n + " = " + Math.pow(2,n)); 
    } 
    

    【讨论】:

    • 我们必须创建一个名为 raiseIntPower 的方法,它接受两个整数 n 和 k 并返回 n 的 k 次幂。然后使用该方法显示从 0 - 10 的 2 的 k 次幂的值的表格
    • Math class 它自己提供了一个函数 pow 来做到这一点。
    • 是否需要在 raiseIntPower 中使用 for 循环来计算 10 次不同的值?
    • 看看时间什么时候出现,你必须借助循环。 :)
    【解决方案3】:

    检查这个

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

    【讨论】:

      【解决方案4】:

      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。 int n 及其在 for 循环中的引用应更改为其他名称,例如 int i。

      【讨论】:

        猜你喜欢
        • 2016-10-30
        • 1970-01-01
        • 1970-01-01
        • 2019-07-12
        • 1970-01-01
        • 1970-01-01
        • 2016-04-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多