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
为什么会不同呢?我在这点上很迷惑请知道的高人指点一下
能否按我上面说的解释一下呢?为什么不同呢? 展开
在程序设计时,下面这个程序能否正确计算呢
int remainder(int a,int n)
{
if(a>=0)
return (a%n);
else
return n-1-(-a-1)%n;
}
而按照上面这个程序:-3/10=7
为什么会不同呢?我在这点上很迷惑请知道的高人指点一下
能否按我上面说的解释一下呢?为什么不同呢? 展开
3个回答
展开全部
求余运算符号由被除数决定,如:7%-4=3,-7%4=-3,-7%-4=-3
现在知道为什么答案是7了吧,
要按你的想法,应该改为:
int remainder(int a,int n)
{
return (a%n);
}
现在知道为什么答案是7了吧,
要按你的想法,应该改为:
int remainder(int a,int n)
{
return (a%n);
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
计算被除数是负数的余数,按数学原理:-3/10=7
注意是7不是-3
(a%n=b, 0<=b<n)
设计正确
若一定要使用负余数的话,直接用a%n就行了
注意是7不是-3
(a%n=b, 0<=b<n)
设计正确
若一定要使用负余数的话,直接用a%n就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
求余方式不同:
方式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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询