1. 问题
if (!(i % 3) || !(i % 5))是什么意思
我的理解是如果不是i%3或不是i%5,则sum+=i(我理解错了,请指正谢谢!!!)
#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;
}
2. 回答
!(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时,为假。