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