0

我的逻辑和推理有问题,使用 while 循环,并返回正数 n 的总和和输入总和 n 的平方。请查看我的代码并尽可能提供帮助,谢谢。

练习是: /* 编写一个简短的 Java 方法,它接受一个整数 n 并返回所有小于或等于 n 的正整数的平方和。* */

public class ch1dot7 
{
    public static void main (String[]args)
    {
        Scanner input = new Scanner(System.in);
    int n, m = 0, sum = 0;

    System.out.print("Please enter a value for n: ");
    n = input.nextInt();

    System.out.println("n is currently: "+n);

    if (n <= 0)
    {
        System.out.print("Please enter a value that is higher than 0   (integer)");
        n = input.nextInt();
    }

    while  (sum > n)
    {

        System.out.print("Please enter a value for m (enter a value greater     than n to exit): ");
        m = input.nextInt();

        if (m < n)
        {
            sum += m*m;
            System.out.println("sum of the squares is: " +sum); 
        }

        sum += m*m;
    }

}//end main


}//end class
4

1 回答 1

0

你误解了任务。该作业不要求您接受用户的输入。该方法的唯一输入是n.

问题是创建一个方法,它接受一个整数 n 并返回所有小于 n 的正整数的平方和。

例如,如果 n 为 5,则需要将小于 5 的数字的平方相加,即数字 1 到 4,如下所示:

(1*1) + (2*2) + (3*3) + (4*4)

1 + 4 + 9 + 16 = 30

你的方法应该返回 30

在您的while循环中,您提示用户输入其他输入并将其保存在变量中m。这不是必需的。m不需要该变量。

while当计数器变量小于 n 时,您的循环应该继续,并且计数器应该在每个循环中递增。从 1 开始计数器并在该计数器小于 n 时继续循环。

public static int sumOfSquares(int n) {
    // here you can check if n is greater than 0

    int counter = 1;
    int sum = 0;
    while (counter < n) {
        // [ sum up the square of the counter ]
        counter++;
    }

    return n;
}
于 2015-11-25T04:10:26.873 回答