如何获取可被5整除的位数

时间:2018-06-04 11:12:00

标签: c#

我想在1到100之间找到可被5整除的位数,在C#窗体中,如何从这里开始?

int sum;
private void button2_Click(object sender, EventArgs e)
{
    int[] intarray = new int[100];

    for (int i = 0; i < 99; i++)
    {
        intarray[i] = i + 1;
    }

    foreach (int a in intarray)
    {
        if (a / 5 == 0)
        {

        }

    }
}

6 个答案:

答案 0 :(得分:3)

注意比a / 5 == 0错误。例如,10可以被2整除,结果是10/5 = 2,不等于0。

if (a % 5 == 0)
{
    //then a is divisible by 5. print or store it
}

模数运算符(也称为Remainder)返回整数除法的余数。

因此,完整答案:

int nInRange = 0;
foreach (int a in intarray)
    if (a % 5 == 0)
        nInRange++;

答案 1 :(得分:2)

也许这就是你想要的。

public static IEnumerable<int> GetIntsDivisible(int start, int finish, int divisor)
{
    for (var i = start; i <= finish; i++)
        if (i % divisor == 0)
            yield return i;
}
public static void Main()
{
    Console.WriteLine(string.Join(", ", GetIntsDivisible(1, 100, 5)));
}

或者如果你不想屈服

public static List<int> GetIntsDivisible(int start, int finish, int divisor)
{
    var result = new List<int>();
    for (var i = start; i <= finish; i++)
        if (i % divisor == 0)
            result.Add(i);
    return result;
}

<强>输出

5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100

Full demo here

答案 2 :(得分:1)

将变量初始化为0

例如Count = 0;

然后在if块中添加语句Count++,如下所示:

            if (a % 5 == 0)
            {
                  Count++;
            }

答案 3 :(得分:1)

由于问题在确切要求上有点模糊,我将编写基本逻辑,可以找到完全可被其他数字整除的数字。

有一种叫做模数(%)运算符的东西。它给你剩下的部分。 11%5将是1,13%5将是3,而15%5将是0

所以逻辑就像,

for(int i=0;i<=100;i++) 
{
     if((i%5)==0)
     {
        \\this is ur number
     }
}

答案 4 :(得分:1)

每个人都在解决你的问题,但没有人谈论这个奇怪的尝试。 我真的认为你应该花5分钟阅读你的代码,因为你只是到处运行。

你应该先拿笔和纸,然后先进行编码。 这是对代码的简单阅读,以便您了解自己在做什么。

第1行:

s/orderNumber: \d\+\zs.*\zeorderID/ /

所以你开始赢得一个阵列,我想它的结果,对吧?你不会无缘无故地存储1到100的数字吗?

第2行:

int[] intarray = new int[100];

现在我们从0到98计数,虽然它是1到100的形式..是98,因为您使用的是for (int i = 0; i < 99; i++) 而不是<

第3行:

<=

为什么?第3行,你已经迷路了!您正在使用您只是迭代的数字填充数组。这就像用水填充瓶子,然后用它来填充另一瓶,因为你需要水。 如果你从1迭代到100,你可以检查它是否可以整除。

intarray[i] = i + 1;

第4行:

for (int i = 1; i <= 100; i++)
再次?我们从1回到100 ......

第5行:

foreach (int a in intarray)

如果这是假设它告诉你它是否可以分割错误。正确的数学运算符是Modulo。分区符号不会给你你期望的结果。 if (a / 5 == 0) 会给你真实的。其他任何东西都是假的。

答案 5 :(得分:0)

        int count = 0;
        for (int i = 1; i <= 100; i++)
        {
            if ((i % 5) == 0)
            {
                count++;
                textBox1.Text = count.ToString();
            }
        }

可替换地,

int num =(100 + 5)/ 5 - (1 + 5 - 1)/ 5; //在这里显示结果