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

来源:百度知道 编辑:UC知道 时间:2024/05/11 04:27:57
计算被除数是负数的余数,按数学原理:-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
为什么会不同呢?我在这点上很迷惑请知道的高人指点一下
能否按我上面说的解释一下呢?为什么不同呢?

求余运算符号由被除数决定,如:7%-4=3,-7%4=-3,-7%-4=-3
现在知道为什么答案是7了吧,
要按你的想法,应该改为:
int remainder(int a,int n)
{
return (a%n);
}

计算被除数是负数的余数,按数学原理:-3/10=7
注意是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

请问C语言是怎么计算负数取余的? 在一个除法算式中,商7余2,被除数、除数、商和余数的和571。被除数和除数各是( )。 两数相除商是5余5,被除数,除数和商的和为2415,则被除数是? 两数相除,商6余3,被除数,除数.商余数的和是61,求被除数.和除数? 两数相除,商5余3,被除数.除数.商与余数的和是59,求被除数和除数是多少? 被除数除以除数,商14余3,被除数 除数 商 余数的和是155,被除数是多少?(要过程和答案) 在减法算式中,被除数、除数和商的乘积是100,被除数是多少? 两个数相除商6余4,被除数,除数商与余数的和是357,则被除数是(),除数是()? 小明计算一道除法,当商是6时,余数是3,当商是6.6时,余数是除数的1/15,这道算式中被除数是几 被除数除以除数,商12,余26,除数是?