Thoughtsjump 发表于 2020-11-22 09:42:06

!(i % 3)不懂

#include <stdio.h>

int main()
{
      int i, sum = 0;

      for (i = 0; i < 1000; i++)
      {
                if (!(i % 3) || !(i % 5))
                {
                        sum += i;
                }
      }

      printf("%d\n", sum);

      return 0;
}
!(i % 3)什么意思?i % 3 为0 ?!0 为1么?

jitianmoshen 发表于 2020-11-22 09:50:25

!(i% 3)和 i % 3==0是等价的,!(i % 3)为真值,i % 3就得等于0

a327190489 发表于 2020-11-22 10:07:54

i%3等于0,前面再加!,取反之后就是if语句为1了,此时i%3还是为零的

昨非 发表于 2020-11-22 10:27:36

你的理解是正确的
i%3等0,说明是三的整数倍,
!(i%3) 的成立条件就是“是三的整数倍”
同理 !(i%5)的成立条件就是“是五的倍数”

所以总的条件就是“1000以内3的倍数或5的倍数的和”
页: [1]
查看完整版本: !(i % 3)不懂