如何在没有循环的情况下计算 'hits' ?

How do I calculate 'hits' here without the loop?

#include <stdio.h>

int main()
{
    int ix;
    unsigned hits = 0;
    for (ix=0; ix < 128; ix++)
    {   
        if (ix % 4 == 0)
            continue;   

        hits++;
    }
    printf("%u hits\n", hits);
    return;
}

这不是编程题,我没有这样的代码。但我对处理此类问题的数学方法很感兴趣。 printf returns "96 次命中" 我的问题是,有没有不用循环计算'hits'的公式?

这篇文章:

if (ix % 4 == 0)
    continue;   

基本上就是"skip every fourth iteration"。这意味着它与减少 25% 的迭代次数相同。所以在这种情况下,由于操作 hits++ 根本不依赖于 if ix 的值,所以整个事情是一样的:

unsigned hits = 0;
for (ix=0; ix < 128 * 3/4; ix++)
{   
    hits++;
}

并且由于唯一的操作是递增,您可以将所有内容更改为

hits = 128*3/4;