找到2和输入值之间的所有偶数整数的和?
import java.util.Scanner;
public static void main(String[] args) {
//initialization and declaration of variable
int input, sum = 0;
Scanner sc = new Scanner(System.in);
//Ask user to input data
System.out.print("Enter a number you want to limit up-to : ");
input = sc.nextInt();
//Conditions
if(input < 2) {
System.out.println("Error Occurred! Please, Enter a number greater or equal to 2. ");
}
for (int i = 2; i <= input; i++ ) {
if( i % 2 == 0) {
sum += i;
}
}
}
您应该打印结果sum
。在主方法关闭之前添加System.out.println("the sum is:" + sum)
。这是完整的代码:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
//initialization and declaration of variable
int input, sum = 0;
Scanner sc = new Scanner(System.in);
//Ask user to input data
System.out.print("Enter a number you want to limit up-to : ");
input = sc.nextInt();
//Conditions
if(input < 2) {
System.out.println("Error Occurred! Please, Enter a number greater or equal to 2. ");
}
for (int i = 2; i <= input; i++) {
if( i % 2 == 0) {
sum += i;
}
}
System.out.println("the sum is:" + sum);
}
}
正如Tim Hunter所说,您可以将i
的步长设置为2。因为如果i
是偶数,则i+1
必须是奇数。代码如下:
for (int i = 2; i <= input; i+=2) {
if( i % 2 == 0) {
sum += i;
}
}
我对所有答案都很满意,但如果你可以在恒定时间内完成,那么为什么要在线性时间内完成呢?通过使用一些数学,你根本不需要循环。但若你们只是倾向于循环,那个么就按照上面的答案去做。
如果你知道A.p,那么你可以很容易地看到你正在寻找A.p 的总和
正如你所说,你的第一个术语a=2。
您的公共差d=2仅为偶数。
最后一项l=用户输入=a+(n-1(d;
因此n=(l-a(d+1。和sum=n/2(a+l(。
注意在代码中,检查用户是否输入奇数作为输入,因为具有公共差2的a.P的最后一项不可能是奇数,如果用户输入奇数,则从中减去一,否则将其保留,
它就像一样简单
if(input % 2 == 0)
input -=1;
numberOfTerms = (input - 2 )/2 + 1;
//numberOfTerms为n;
sum = (numberOfTerms(2 + input))/2;
//输入为l;