java:如何计算数字列表中的偶数?

java:如何计算数字列表中的偶数?,java,Java,这个程序应该做的是:用户应该输入值的数量,然后得到值列表中偶数的平均值。我被困在需要获得偶数的地方,以获得平均值 import javax.swing.JOptionPane; class SumOfEven { public static void main(String args[]) { int n; int sum=0; double avg; String Numbers; int ev

这个程序应该做的是:用户应该输入值的数量,然后得到值列表中偶数的平均值。我被困在需要获得偶数的地方,以获得平均值

import javax.swing.JOptionPane;

class SumOfEven {

    public static void main(String args[])
    {
        int n;
        int sum=0;
        double avg;
        String Numbers;
        int even;

        Numbers = JOptionPane.showInputDialog("How Many Numbers In The List ??");
        n = Integer.parseInt( Numbers);

        for(int i=0;i<=n;i++)
        {
            if(i%2==0)
            {
                System.out.println("Number of Even Numbers In This List = "+i);
            }
        }

        for(int x=0;x<=n;x+=2){
           sum+=x;

        }

        avg=sum/n;
        System.out.println("sum of even numbers is =" +sum);
        System.out.println("avgerage of even numbers is =" +avg);

        System.exit(0);
    }
}
import javax.swing.JOptionPane;
苏莫芬类{
公共静态void main(字符串参数[])
{
int n;
整数和=0;
双平均值;
字符串编号;
整数偶数;
Numbers=JOptionPane.showInputDialog(“列表中有多少个数字?”);
n=整数.parseInt(数字);
对于(inti=0;i试试这个

int count = 0;
for(int i=0;i<=n;i++)
{
    if(i%2==0)
    {
       ++count;
    }
}

System.out.println("Number of Even Numbers In This List = "+count);
int count=0;

对于(int i=0;i偶数,当你把它除以二时,它的余数为零

因此,您可以使用以下内容:

if ((number % 2) == 0)
    evenCount++;

使用计数器以这种方式获取偶数值的数量(c是计数器):

intc=0;

对于Java8中的(inti=0;i),您可以使用流API进行此操作

long count = IntStream.range(0, n).filter(e -> e % 2 == 0).count();

如果你有连续的数字0..n,那么其中一半是偶数。因此,假设你把0算作偶数:

int countOfEven = n/2 + 1;
如果数字不是以0开头,而是以不同的值开头,则可以执行以下操作:

int min = ...; // your minimum value
int max = ...; // your maximum value
int countOfEven = (max - min) / 2;
if(min % 2 == 0) {
    countOfEven += 1;
}

输入格式是什么?我不想列出偶数…而是想知道值列表中有多少偶数。删除此问题…请选择窗格?您希望用户在命令行或其他地方输入吗?如果您有
n
连续整数,则取其一半(向下舍入)将是偶数,因为每一秒的整数都是偶数。你的答案和我的答案有什么区别吗?不是真的,但当你的答案发布时,我正在键入,没有看到你的答案,我没有复制你的答案。因为你希望有人接受你的答案,并且因为你的答案是第一位的,并且你的答案是正确的,我将投票表决它。只是返回“否”他赞成如果你认为我的答案值得的话,我只想让你投票支持我的答案。请看我答案下面的评论。这很好,但需要线性时间(O(n))。但是,正如我在回答中所显示的,这可以在恒定时间(O(1))内解决。请看我答案下面的评论。但它应该是“int count=0”,而不是“int countOfEven=0;”@是的,你是对的。我错了,我更新了答案
int min = ...; // your minimum value
int max = ...; // your maximum value
int countOfEven = (max - min) / 2;
if(min % 2 == 0) {
    countOfEven += 1;
}