我在读一本C++入门第5版,我不明白为什么这是真的:模式
模运算符的定义,这样,如果m和n为整数且n为非零值, 那么(m/n)* n + m%n等于m。
我决定检查此,结果是的确是真实的:
int m = 9;
int n = 2;
if ((m/n)*n + m%n == m)
std::cout << "true" << std::endl;
1)(M/N)* N ==米(9)
2)M%N = = 1
3)(M/N)* N + M%N == 10 NOT 9
有人能解释这是怎么回事?
'(9/2)* 2' does ** not ** equal'9'。 –
你了解整数除法的工作原理吗? – taskinoor
这个定义的真正罪魁祸首实际上是负整数..尝试-9 ... :)(在你首先得到整数除法的想法,就像答案指出的那样)。 – Ped7g