tucc 发表于 2021-12-27 17:23:56

问题再最后

#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;
}
if (!(i % 3) || !(i % 5))是什么意思
我的理解是如果不是i%3或不是i%5,则sum+=i(我理解错了,请指正谢谢!!!)

番杰 发表于 2021-12-27 17:35:37

!(i % 3) || !(i % 5),这个就是判断 i 是不是3或5的倍数,或是说 i 可不可以整除3或5.

举个例子:
1)i = 6;
(i % 3) =6%3 = 0 —> !(0) = 1;
即整除3时为真,5同理。

2)i =7
(i % 3) = 7 % 3 = 1 —> !(1) = 0;
(i % 5) = 7 % 5 = 2 —> !(2) = 0;
即无法整除3或5时,为假。
页: [1]
查看完整版本: 问题再最后