首页 > 解决方案 > 有什么我可以改变的,让它像它应该的那样工作吗

问题描述

有一个程序要求我编写一个 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);
    }
}

并且程序没有像问题希望的那样工作

标签: java

解决方案


您可以使用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);
    }
}

推荐阅读