我正在尝试编写一个程序来提示用户输入大于或等于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.");
}
}
答案 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.");
}
}