我需要显示小于特定数字的所有偶数。这些数字是在一个范围之间随机生成的。这是作业:
编写一个程序,提示用户输入一个整数(n)。你的程序然后生成,另一个随机 整数(max),最多可达10 * n。因此,如果n输入为5,则生成的数字(max)应为 在5到50之间(5 * 10)。该程序显示所有偶数小于(最大)的总和。你的计划 在达到大于最大值的第一个总和值处停止。显示其值。
到目前为止我做了什么:
Scanner s = new Scanner(System.in);
System.out.print("Enter an integer: ");
int n = s.nextInt();
int most = (10 * n) - (n+1);
int max = (int)( n + Math.random() * most);
System.out.println("Maximum generated is: "+ max);
for(int i = 2 ; i < max; i+=2) {
int num = max/i;
if(num % 2 == 0) {
System.out.print("number is "+ num);
}
}
示例运行:
Enter an integer: 5
Maximum generated is: 45
Sum of (6 8 10 12) = 50 //we stopped because 50 is the first sum greater
//than max
怎么了?
答案 0 :(得分:0)
我认为你的逻辑应该是这样的,
int sum = 0;
int i = 2;
while (i<max) {
sum+=i;
if (sum > max) {
break;
}
i+=2;
}
System.out.print("Value=" + sum);
答案 1 :(得分:0)
你可以这样做:
for(int i=0; i<max; i=i+2){
sum+=i;
}
的System.out.println(总和); 然而,听起来确实可能存在更快的直接数学公式,用于计算所有偶数的总和,但是这是另一个堆栈交换的问题。