计算偶数总和的更好方法

时间:2011-06-01 16:16:31

标签: java int sum

我正在尝试编写一个程序来提示用户输入大于或等于2的int。然后程序必须计算并打印2和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.");


    }

}

4 个答案:

答案 0 :(得分:3)

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

    // 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)

为什么要循环?你实际上可以计算出来。设X为他们选择的数字。设N是最大的偶数< = X.(N ^ 2 + 2 * N)/ 4将是你的答案。

编辑:刚看到我上面的答案。他是对的。我给了我想的功能。

答案 2 :(得分:1)

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

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

这是一个非常简单的算术进展。

答案 3 :(得分: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.");
    }
}