我刚开始用斯坦福课程学习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库。
感谢。
答案 0 :(得分:1)
只需从1
到9
进行循环,然后每次将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。