C++與演算法

取餘數 %

《孫子算經》

今有物不知其數,三三數之剩二,五五數之剩三,七七數之剩二,問物幾何?

翻譯

有一個X不知道多少,X除以3餘2,X除以5餘3, X除以7餘2,請問X=?



數學上的取餘數 mod

假設我們用一些方法算出來X=23

則數學上會表達為

23 / 3 = 7 ... 2

23 / 5 = 4 ... 3

23 / 7 = 3 ... 2


或者用mod (中文念作對...取餘數) 來表示

23 mod 3 = 2  23對3取餘數等於2

23 mod 5 = 3  23對5取餘數等於3

23 mod 7 = 2  23對7取餘數等於2



C++上的取餘數 %

程式語言裡,把 mod 寫成 %

code

#include<iostream>
using namespace std;

int main()
{

    cout << 23%3 << endl;
    cout << 23%5 << endl;
    cout << 23%7 << endl;

    return 0;
}

output

2
3
2


取餘數的用途

  • 倍數判斷:A % B 為 0 時,代表A是B的倍數。

  • 分組:若對座號取餘數3,可以快速分出三個小組{ 3, 6, 9... }、{ 1, 4, 7... }、{ 2, 5, 8... }