计算偶数整数之和的更好方法

问题描述 投票:0回答:4

我正在尝试编写一个程序来提示用户输入大于或等于 2 的

int
。然后,程序必须根据此输入计算并打印 2 和输入的
int 之间所有偶数整数的总和
。如果输入的
int
低于 2,它还必须生成一条错误消息。我已经为它编写了一个可行的程序,但我只是想知道你们是否可以找到更好的方法来做到这一点?我确信有,但我似乎找不到一种有效的方法!

这就是我所做的:

import java.util.Scanner;

public class EvenSum {


         public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);

    System.out.println("Enter an integer which is above 2.");
    int number = scan.nextInt();
    int divnum = number / 2;
    int divnum2 = divnum + 1;
    int sumofeven = divnum * divnum2;

    if(number >= 2)
    System.out.println("The sum of the even integers between the number is "+
            sumofeven);
    else
        System.out.println("Invalid number entered.");


    }

}
java int sum
4个回答
3
投票

为什么要用循环来做呢?其实你可以算一下。设 X 为他们选择的数字。设 N 为最大偶数 <= X. (N^2+2*N)/4 will be your answer.


2
投票

注意:请勿在真实上下文中使用此示例,它无效。它只是展示了一种更干净的方法。

    // Check the input.
    if (number >= 2)
        System.out.println(sum(number));
} 

// Will find the sum if the number is greater than 2.
int sum(int n) {
    return n == 2 ? n - 2 : n % 2 == 0 ? n + sum(n - 2) : sum(n - 1);
}

希望这有帮助。哦,顺便说一句,方法

sum
递归地添加数字。

抱歉,但我必须稍微编辑一下答案。可能还有改进的空间。


1
投票

为什么要使用循环?您正在计算以下各项的总和:

2 + 4 + ... n, where n is a positive even number.

这是一个非常简单的算术级数。


0
投票
public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);

    System.out.println("Enter an integer which is above 2.");

    int number = scan.nextInt();

    if (number >= 2) {
        int sumofeven = 0;
        for (int i = 2; i <= number; i += 2) {
            sumofeven += i;
        }
        System.out.println("The sum of the even integers between the number is " + sumofeven);
    } else {
        System.out.println("Invalid number entered.");
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.