c++中计算被除数是负数时的余数 20

计算被除数是负数的余数,按数学原理:-3/10=-3在程序设计时,下面这个程序能否正确计算呢intremainder(inta,intn){if(a>=0)return(... 计算被除数是负数的余数,按数学原理:-3/10=-3
在程序设计时,下面这个程序能否正确计算呢
int remainder(int a,int n)
{
if(a>=0)
return (a%n);
else
return n-1-(-a-1)%n;
}
而按照上面这个程序:-3/10=7
为什么会不同呢?我在这点上很迷惑请知道的高人指点一下
能否按我上面说的解释一下呢?为什么不同呢?
展开
 我来答
Roc_Chou
2009-04-22 · TA获得超过2096个赞
知道小有建树答主
回答量:1007
采纳率:0%
帮助的人:658万
展开全部
求余运算符号由被除数决定,如:7%-4=3,-7%4=-3,-7%-4=-3
现在知道为什么答案是7了吧,
要按你的想法,应该改为:
int remainder(int a,int n)
{
return (a%n);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
问题1598
2012-11-12 · TA获得超过384个赞
知道小有建树答主
回答量:319
采纳率:100%
帮助的人:181万
展开全部
计算被除数是负数的余数,按数学原理:-3/10=7
注意是7不是-3
(a%n=b, 0<=b<n)
设计正确
若一定要使用负余数的话,直接用a%n就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wuhouzheng
2009-04-22 · TA获得超过8561个赞
知道小有建树答主
回答量:1010
采纳率:100%
帮助的人:1275万
展开全部
求余方式不同:

方式1
5%3=>2
-5%3=>-2
5%-3=>2
-5%-3=>-2

方式2
5%3=>2
-5%3=> 1
5%-3=>-1
-5%-3=>-2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式