java - Java 中的指数(足够简单)

标签 java exponent

编写一个循环,对指数进行求和,如下所示: 2^0 、 2^1 、 2^2 并将它们相加。

这是我的程序:

import java.util.Scanner;

public class Exponents {



    public static void main(String[] args) {

        Scanner reader = new Scanner(System.in);
        System.out.println(" Enter expoenent ");
        int n = Integer.parseInt(reader.nextLine());

        int sum = 0;
        int i =  0;
        int result = (int)Math.pow(2, sum); 


       while(i <= n) {
        i++;
        sum = sum + i;  
        result += result; 
       }
        System.out.println(result);

   }
}

我似乎总是独来独往。它似乎不想添加 2^0 即 1...所以我总是 1。

最佳答案

为什么要在每次迭代中重新评估整个项?

类似于

int term = 1;
int sum = 0;    
for (int i = 0; i < n; ++i){    
   sum += term;
   term *= 2;
}

更有效率。在这里,n是术语数量:在您的示例中,它是 3。如果您想包含额外术语,请使用 <= n作为 for 中的停止条件循环。

继续,考虑使用 long作为 term 的类型和sum .

关于java - Java 中的指数(足够简单),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34261982/

相关文章:

r - 将指数添加到轴标签 (R/ggplot2)

c - 反转任意大小的矩阵

python - 为什么使用十进制值的指数表示法会失败?

java - 在 HTML 页面的什么地方添加 UTF-8 扩展名?

java - MERGE 是 SQL 2008 中的原子语句吗?

java - Java中静态变量的用法——对象永远不会改变

java - 为智能电视创建应用程序的工具

java - 常量属性应该放在哪里?

javascript - 你能比 O(log n) 更快地得到 10 的幂吗?

c - 通过递归的幂函数