私は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 M(9)
2)m個の%を== N = = 1
3)(M/N)* N + Mの%nは== 10、NOT 9
誰かがここで何が起こっているか説明できますか?
'(9/2)* 2'は** not ** equal '9'です。 –
整数除算の仕組みを理解していますか? – taskinoor
この定義の本当の原因は実際には負の整数です。try -9 ... :)(整数除算の考え方を得た後、答えが指摘されます)。 – Ped7g