【问题标题】:How to display all even numbers less than a given number?如何显示小于给定数字的所有偶数?
【发布时间】:2013-12-07 14:06:30
【问题描述】:

我需要显示小于特定数字的所有偶数。这些数字是在一个范围之间随机生成的。这是作业:

编写一个程序,提示用户输入一个整数 (n)。然后你的程序生成另一个随机 最多达到 10 * n 的整数(最大值)。因此,如果输入的 n 为 5,则生成的数字(最大值)应为 在 5 到 50 (5*10) 之间。该程序显示所有小于 (max) 的偶数之和。你的程序 在达到大于最大值的第一个总和值处停止。显示它的值。

到目前为止我做了什么:

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

怎么了?

【问题讨论】:

  • 使用标签部分作为标签,不要将标签放在标题部分。我清理了你的问题。
  • 我认为这个想法是生成所有小于最大值(2 到 48)的偶数,然后将它们全部相加。
  • @GilbertLeBlanc 没错
  • for 循环过于复杂。您需要做的就是将偶数相加。你不需要除法或模数。我建议你从头开始循环,多思考,少打字。
  • @kviiri 会做的,然后我会用我所做的更新帖子.. 谢谢:)

标签: java loops


【解决方案1】:

我觉得你的逻辑应该是这样的,

int sum = 0;
int i = 2;
while (i<max) {
    sum+=i;
    if (sum > max) {
        break;
    }
    i+=2;
}
System.out.print("Value=" + sum);

【讨论】:

  • 这就是我在循环中的想法
【解决方案2】:

你可以这样做:

for(int i=0; i<max; i=i+2){
  sum+=i;
}

System.out.println(sum); 然而,听起来可能有一个更快的直接数学公式可以将所有偶数的总和低于某个数字,但这是另一个堆栈交换的问题。

【讨论】:

  • 谢谢伙计,它帮助了我!
猜你喜欢
  • 2013-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-27
  • 1970-01-01
  • 1970-01-01
  • 2021-09-24
  • 1970-01-01
相关资源
最近更新 更多