java - 有什么我可以改变的,让它像它应该的那样工作吗
问题描述
有一个程序要求我编写一个 java 程序,要求用户输入一个正数 n 并使用 while 循环打印奇数的总和:1+3+5+7…+(2n-1)。
示例:如果输入为 4,则程序将打印 16
所以我所做的就是制作这个代码:
public class Main
{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Please enter a positive number :");
int n = input.nextInt();
int i = 0;
int sum = 0;
while (i<=n)
{
sum += i ;
i++;
}
System.out.println("Sum = " + sum);
}
}
并且程序没有像问题希望的那样工作
解决方案
您可以使用i += 2;
which is same as i = i + 2;
,而不是使用i++;
。
但这不会给你你期望的输出。因此,必须对代码进行一些更改才能获得预期的结果。
- 首先将 的值初始化
i
为 1。
int i = 1;
- 然后,将
while loop
语句更改为,
while (i <= (2 * n - 1)){
// Your Code
}
- 最后,
i += 2;
用作您的增量语句。
完整代码如下所示。
import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Please enter a positive number :");
int n = input.nextInt();
int i = 1;
int sum = 0;
while (i<=(2 * n - 1))
{
sum += i ;
i += 2;
}
System.out.println("Sum = " + sum);
}
}