我们对a模b要用(a%b+b)%b的形式,是因为C++中的%与数学上的取模不太一样,举个例子:
1.C++:-2%3 = -2,出现了负数,在数组中a[i],i不能为负,因此要转换。
2.数学上:-2%3 = 1
所以要用这个公式让C++进行数学上的取模(a%b+b)%b,只要C++取模以后得到的结果可能为负数,推荐都用公式进行这样的转换。
代码如下:
int get_mod(int a,int b)
{return (a%b+b)%b;
}
我们对a模b要用(a%b+b)%b的形式,是因为C++中的%与数学上的取模不太一样,举个例子:
1.C++:-2%3 = -2,出现了负数,在数组中a[i],i不能为负,因此要转换。
2.数学上:-2%3 = 1
所以要用这个公式让C++进行数学上的取模(a%b+b)%b,只要C++取模以后得到的结果可能为负数,推荐都用公式进行这样的转换。
代码如下:
int get_mod(int a,int b)
{return (a%b+b)%b;
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/312084.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!