#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返回“ 96次命中” 我的问题是,有没有计算循环的“点击数”的公式?
答案 0 :(得分:1)
这件作品:
if (ix % 4 == 0)
continue;
基本上是指“每四次跳过一次”。这意味着将迭代次数减少25%相同。因此,在这种情况下,由于操作hits++
完全不依赖于ix
的值,因此整个操作与以下内容相同:
unsigned hits = 0;
for (ix=0; ix < 128 * 3/4; ix++)
{
hits++;
}
由于唯一的操作是增量,因此您可以将所有内容更改为
hits = 128*3/4;