c++ %运算符

c++ %运算符

前言

运算符%俗称“取余”或“取模”运算符,负责计算两个整数相除所得的余数。

在除法运算中,如果两个运算对象的符号相同则商为正(如果不为0的话),否则商为负。C++语言的早期版本允许结果为负值的商向上或向下取整,C++11新标准则规定商一律向0取整(即直接切除小数部分)
根据取余运算的定义,如果m和n是整数且n非0,则表达式(m/n)*n+m%n的求值结果与m相等。隐含的意思是,如果m%n不等于0,则它的符号和m相同。C++语言的早期版本允许m%n的符号匹配n的符号,而且商向负无穷一侧取整,这一方式在新标准中已经被禁止使用了。除了-m导致溢出的特殊情况,其他时候(-m)/n和m/(-n)都等于-(m/n),m%(-n)等于m%n,(-m)%n等于-(m%n)。

综上,有两个要点,其一:商一律向0取整;其二:m%n结果的正负和m相同。

实践

写算法题时要求取模。即若结果为 y,输出为 k,则保证存在整数 t,满足y=k+t(10^9+7)且 0<k<10^9+7。要求取模的结果为正。

res%=MOD;	// 仅有这一条语句不行,如res=-21,MOD=5,结果为-1
res=(res+MOD)%MOD;		// 仅有这一条语句也不行,如res=-21,MOD=5,结果为-1
// 同时要有以上两条语句,且顺序不可颠倒,如此就有 res=-21 -> res=-1 -> res=4,方可满足-21=4+(-5)*5

相关推荐

  1. c++ %运算符

    2024-02-20 05:20:03       27 阅读
  2. C++ 运算符

    2024-02-20 05:20:03       15 阅读
  3. C系列」C 运算符

    2024-02-20 05:20:03       10 阅读
  4. C++运算符重载

    2024-02-20 05:20:03       28 阅读
  5. C 语言运算符详解

    2024-02-20 05:20:03       37 阅读
  6. C++运算符和表达式

    2024-02-20 05:20:03       35 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-20 05:20:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-20 05:20:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-20 05:20:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-20 05:20:03       20 阅读

热门阅读

  1. 2024前端面试准备之Vue3篇

    2024-02-20 05:20:03       36 阅读
  2. docker的底层原理一:客户端-服务器架构

    2024-02-20 05:20:03       31 阅读
  3. LeetCode--2298. 周末任务计数

    2024-02-20 05:20:03       29 阅读
  4. LeetCode刷题小记 一、【数组】

    2024-02-20 05:20:03       29 阅读
  5. CDH 6.x版本 HBase基础调优参数

    2024-02-20 05:20:03       30 阅读
  6. mysql3.7之触发器

    2024-02-20 05:20:03       29 阅读