我对整个CS场景都很陌生,但很快就进入了它,我选择Java作为我想要学习的第一语言。
我使用的是在线资源,要求我制作一个简单的程序,要求用户输入一个数字,然后它会将权力的总和吐出来。
所以,如果你输入4,我希望它给你2 ^ 0 + 2 ^ 1 + 2 ^ 2 + 2 ^ 3 + 2 ^ 4这是我到目前为止所做的,但是它没有工作, 有什么建议?
我正在使用NetBeans。
System.out.println("Type a number: ");
int number = Integer.parseInt(reader.nextLine());
int i = 0;
int exponent = (int)Math.pow(2,i);
int sum = 0;
while (i <= number) {
sum += exponent;
i++;
}
System.out.println("The result is: " + sum);
答案 0 :(得分:0)
您要在循环外为exponent
分配值。
这意味着每次i
递增时它的值都不会改变。
解决此问题:
System.out.println("Type a number: ");
int number = Integer.parseInt(reader.nextLine());
int sum = 0;
for (int i = 0; i <= number; i++) {
sum += Math.pow(2,i);
}
System.out.println("The result is: " + sum);
}
除了生成所需的输出之外,此代码更有效率,因为我删除了exponent
变量(因为它可以直接添加到sum
),并且我使用了{ {1}}循环(因此不需要声明for
的行或i
递增的行。
答案 1 :(得分:0)
试试这个:
int exponent = 0;
int sum = 0;
while (i < number) {
sum += exponent;
i++;
exponent = (int) Math.pow(2, i);
}
System.out.println("The result is: " + sum);
答案 2 :(得分:0)
带有for循环的整个案例
public static void test(){
java.util.Scanner reader = new java.util.Scanner(System.in);
System.out.println("Type a number: ");
int sum = 0;
int number = Integer.parseInt(reader.nextLine());
for (int i = 0; i <= number; i++){
int exponent = (int) Math.pow(2, i);
sum = sum + exponent;
// System.out.println(i); if you want to see the exponent uncomment this line
}
System.out.println("The result is: " + sum);
}