c++取余问题

最近在一道 Java 习题中,看到这样的一道题:

What is the output when this statement executed: System.out.printf(-7 % 3);

那么对于负数,是否可以沿用这样的定义呢?我们发现,假如我们按照正数求余的规则求 (-7) mod 3 的结果,就可以表示 -7 为 (-3)* 3 +2。其中,2是余数,-3是商。

那么,各种编程语言和计算器是否是按照这样理解的呢?下面是几种软件中对此的理解。

C++(G++ 编译): cout << (-7) % 3; // 输出 -1

Java(1.6): System.out.println((-7) % 3); // 输出 -1

Python 2.6:>>> (-7) % 3 // 输出 2

百度计算器:(-7) mod 3 = 2

Google 计算器:(-7) mod 3 = 2

有道计算器:(-7) mod 3 = -1

如果只看c++和java那么余数和被除数符号一样。

C++(G++ 编译): cout << 7 % (-3); // 输出 1

Java(1.6): System.out.println(7 % (-3)); // 输出 1

Python 2.6:>>> 输出 -2

百度计算器:7 mod (-3) = -2

Google 计算器: 7 mod (-3) = -2
如果只看c++和java那么余数和被除数符号一样。

C++(G++ 编译): cout << (-7) % (-3); // 输出 -1

Java(1.6): System.out.println((-7) % (-3)); // 输出 -1

Python 2.6:>>> 输出 -1

百度计算器:-7 mod (-3) = -1

Google 计算器: -7 mod (-3) = -1
如果只看c++和java那么余数和被除数符号一样。(重要的事情说3遍)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值