C# 检查整数中的数字?

C# 检查整数中的数字?,c#,C#,确定一个数字中有多少偶数的最简单方法是什么? 假设您有4754个数字,或者如果我们让用户输入他想要的任何数字。 我怎样才能找到一个数字中有多少个偶数? 对于4754,数字应该是两个数字,它们是两个4 关于简单整数,在这个例子中int a=4754 Ty全部用于快速回复。 这是我从Tim代码中得到的,它正在工作 Console.WriteLine("Enter your number: "); int number = int.Parse(Console.ReadL

确定一个数字中有多少偶数的最简单方法是什么? 假设您有4754个数字,或者如果我们让用户输入他想要的任何数字。 我怎样才能找到一个数字中有多少个偶数? 对于4754,数字应该是两个数字,它们是两个4

关于简单整数,在这个例子中int a=4754

Ty全部用于快速回复。 这是我从Tim代码中得到的,它正在工作

        Console.WriteLine("Enter your number: ");
        int number = int.Parse(Console.ReadLine());

        int even = number.ToString().Count(c => int.Parse(c.ToString()) % 2 == 0);
        Console.WriteLine("We have {0} even numbers in a number.", even);

您可以将它们转换为字符串并使用LINQ:

int countEven = 47543.ToString().Count(c => int.Parse(c.ToString()) % 2 == 0); // 2
int countOdd  = 47543.ToString().Count(c => int.Parse(c.ToString()) % 2 == 1); // 3

我使用了47543,因为它是一个使用传统方法的更有意义的样本

void Main()
{
    int count = 0;
    int theNum = 475436;
    while(theNum > 0)
    {
        int test = theNum - ((theNum / 10) * 10);
        if(test % 2 == 0) 
            count++;
        theNum = theNum / 10;
    }
    Console.WriteLine(count);
}

很抱歉我之前的回答,我误解了这个问题。

蒂姆提供了一个很好的答案,说明如何使用LINQ。不过,我认为作为C语言的新手,您应该首先学习如何使用一个简单的循环来实现这一点

你应该:

将数字转换为字符串 循环遍历字符串中的每个字符 将每个字符转换回整数 计算得到的每个整数的模数2。mod等于0的数字将是偶数。
尝试编写一些涵盖这些步骤的代码。使用搜索引擎找出你不确定的操作。如果您在某个地方遇到困难,请在此处发布代码,我们将为您提供帮助。

我的方法与@Steve的基本相同,但逻辑略有不同:

public static int CountEvenDigits(int number)
{
    int nEven = 0;

    while (number > 0)
    {
        if ((number & 1) == 0)
            ++nEven;

        number /= 10;
    }

    return nEven;
}

如果您没有时间键入所有2147483647个数字或担心空间问题,那么只需输入您想要支持的数字即可。大多数用户不太可能键入像1151这样晦涩的数字。

数字当然是指数字。你应该发布你编写的代码,这样我们就可以从那开始,我们都可以节省时间。也许OP问的是问题中的偶数数字:对于4754,数字应该是两个数字,它们是两个4。它说数字,这就是为什么我对他的意思有点困惑。是的。我相信你的解决方案在性能上更好,但是对于一个千万循环的结果是一样的。30毫秒…@Steve是的,这真的不重要。为了清晰起见,这很好,但这两个ToString会严重影响性能。@Steve:当然还有改进的余地。但是,47543.ToString和char.ToString绝对不是问题,而int.Parse可能效率低下。是的1234.ToString在我的machine@Oliver:是的,你说得对。不知道你是否读了我的全部帖子,但我自己也提到了蒂姆的答案。我的观点是,对于提出这样一个基本问题的人来说,一行精简的LINQ代码可能不太容易理解。对不起,我误解了你的答案。所以忽略我的评论,我已经删除了。101或463284597怎么样?OP的样本号已经是4754了。
public static int CountEvenDigits(int number)
{
    int nEven = 0;

    while (number > 0)
    {
        if ((number & 1) == 0)
            ++nEven;

        number /= 10;
    }

    return nEven;
}
switch (a)
{
    case 1:
        return 0;
    case 2:
        return 1;
    case 3:
        return 0;
    case 4:
        return 1;
    case 5:
        return 0;
    case 6:
        return 1;
    case 7:
        return 0;
    case 8:
        return 1;
    case 9:
        return 0;
    case 10:
        return 1;
    case 11:
        return 0;
    case 12:
        return 1;
    case 13:
        return 0;
    case 14:
        return 1;
    case 15:
        return 0;
    case 16:
        return 1;
    case 17:
        return 0;
    case 18:
        return 1;
    case 19:
        return 0;
    case 20:
        return 2;
    case 21:
        return 1;
    case 22:
        return 2;
    case 23:
        return 1;
    case 24:
        return 2;
    case 25:
        return 1;
    case 26:
        return 2;
    case 27:
        return 1;
    case 28:
        return 2;
    case 29:
        return 1;
    case 30:
        return 1;
    case 31:
        return 0;
    case 32:
        return 1;
    case 33:
        return 0;
    case 34:
        return 1;
    case 35:
        return 0;
    case 36:
        return 1;
    case 37:
        return 0;
    case 38:
        return 1;
    case 39:
        return 0;
    case 40:
        return 2;
    case 41:
        return 1;
    case 42:
        return 2;
    case 43:
        return 1;
    case 44:
        return 2;
    case 45:
        return 1;
    case 46:
        return 2;
    case 47:
        return 1;
    case 48:
        return 2;
    case 49:
        return 1;
    case 50:
        return 1;
    case 51:
        return 0;
    case 52:
        return 1;
    case 53:
        return 0;
    case 54:
        return 1;
    case 55:
        return 0;
    case 56:
        return 1;
    case 57:
        return 0;
    case 58:
        return 1;
    case 59:
        return 0;
    case 60:
        return 2;
    case 61:
        return 1;
    case 62:
        return 2;
    case 63:
        return 1;
    case 64:
        return 2;
    case 65:
        return 1;
    case 66:
        return 2;
    case 67:
        return 1;
    case 68:
        return 2;
    case 69:
        return 1;
    case 70:
        return 1;
    case 71:
        return 0;
    case 72:
        return 1;
    case 73:
        return 0;
    case 74:
        return 1;
    case 75:
        return 0;
    case 76:
        return 1;
    case 77:
        return 0;
    case 78:
        return 1;
    case 79:
        return 0;
    case 80:
        return 2;
    case 81:
        return 1;
    case 82:
        return 2;
    case 83:
        return 1;
    case 84:
        return 2;
    case 85:
        return 1;
    case 86:
        return 2;
    case 87:
        return 1;
    case 88:
        return 2;
    case 89:
        return 1;
    case 90:
        return 1;
    case 91:
        return 0;
    case 92:
        return 1;
    case 93:
        return 0;
    case 94:
        return 1;
    case 95:
        return 0;
    case 96:
        return 1;
    case 97:
        return 0;
    case 98:
        return 1;
    case 99:
        return 0;
    case 100:
        return 2;
    case 463284597:
        return 5;
    case 4754:
        return 2;
}