c-远离循环



我在倒数一年中有多少个星期日是1日2000/1/1和2020/5/2

我已经为它制作了一个功能,它工作得很好,但问题是我在里面嵌套了循环,这让它很慢。

int sundaycount = 0;
for (i = year1; i<year2; i++) { // years
    for (j = 0; j<12; j++) {
        if (isdate(i, j, 1)) {
            sundaycount++;
        }
    }
}
  • ofc循环内部有正确工作的条件,我如何才能远离嵌套循环,使迭代/代码更快

您应该发布isdate()的代码。我们无法验证您的问题。我不敢相信对mkdate()的240次呼叫可以被视为慢速

如果你真的想使用更少的计算能力,可以计算第一年1月1日的工作日,并在年份范围内迭代,通过添加模7的天数来测试每个月。闰年要小心。这可能会消耗更少的CPU,但我怀疑你能否衡量这一点。

最新更新