鱼C论坛

 找回密码
 立即注册
查看: 41|回复: 3

[已解决]!(i % 3)不懂

[复制链接]
发表于 2020-11-22 09:42:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
#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么?
最佳答案
2020-11-22 10:27:36
你的理解是正确的
i%3等0,说明是三的整数倍,
!(i%3) 的成立条件就是“是三的整数倍”
同理 !(i%5)的成立条件就是“是五的倍数”

所以总的条件就是“1000以内3的倍数或5的倍数的和”
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2020-11-22 09:50:25 | 显示全部楼层
!(i  % 3)和 i % 3==0是等价的,!(i % 3)为真值,i % 3就得等于0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2020-11-22 10:07:54 | 显示全部楼层
i%3等于0,前面再加!,取反之后就是if语句为1了,此时i%3还是为零的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2020-11-22 10:27:36 | 显示全部楼层    本楼为最佳答案   
你的理解是正确的
i%3等0,说明是三的整数倍,
!(i%3) 的成立条件就是“是三的整数倍”
同理 !(i%5)的成立条件就是“是五的倍数”

所以总的条件就是“1000以内3的倍数或5的倍数的和”
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1

GMT+8, 2020-12-5 20:14

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表