在java中加倍n次(初学者)

时间:2014-09-12 17:20:05

标签: java math

我刚开始用斯坦福课程学习Java。您可能知道每一章都教您如何创建程序来解决问题。我总是倾向于根据我们在课程上得到的新问题来练习一点 当我正在学习 for 语句时,我试图创建一个增加n倍的程序。所以它会是n * n * n ......等等...... 它有效,但我想知道是否有更简单的方法来解决这个问题。 这是我的代码。

/*This program multiplies an n number 10 times.
* 
*/

import acm.program.ConsoleProgram;

public class LiftOff extends ConsoleProgram {

    public void init() {
        setSize(height,width);
    }

    private static final int height = 600;
    private static final int width = 600;

    public void run () {
        println ("This program multiplies a number 10 times");
        double x= readInt("Number: ");

        double stop = x * x * x * x * x * x * x * x * x * x * x;

        for (double x1 = x ; x1 <= stop; x1*= x) {
            println (x1);
        }

        println("Done");
    }
}

我使用了双打,因为int会变为负数。我试图使双重停止= xE + 10,但它不起作用。除此之外的任何解决方案都基于我迄今所学到的。考虑到这使用了acm库。

感谢。

3 个答案:

答案 0 :(得分:1)

只需从19进行循环,然后每次将x的初始值乘以它。

double x= readInt("Number: ");
double result = x;

for(int i = 1; i <= 9; i++)
    result *= x;

答案 1 :(得分:0)

    double number = 5;  //readDouble("Number: ");
    double total = number; // == number*1
    for ( int i = 0; i < 9; i++)
        total = total * number;
    System.out.println(total);

答案 2 :(得分:0)

您正在计算结果两次(第一次停止)。如果你想计算n ^ 1000,你会怎么做?有更简单的方法:

int pow = 10;
int n   = 3;
int res = 1;
for (int i=0 ; i<pow ; i++)
   res *= n;

初学者可能有点高级,但您可能有兴趣知道有更快的方法来计算^ b。看看fast exponentiation