假設我有兩個long long,a和b,我需要相乘,然後得到值k對於一些大的k,這樣a,b和k都在long long的範圍內,但不是int 。爲簡單起見,a,b < k。 因此,代碼將是: long long a, b, k;
cin >> a >> b >> k;
cout << (a * b)%k << "\n";
然而,因爲a,b是如此之大,如果乘像上面,並且溢出和變爲負,則模k將是
有人可以用C++解釋x % y !=0的內部機制嗎?如果整數除法中沒有餘數,則它的計算結果爲0,如果存在任何餘數,則計算結果爲1。我覺得這很有用,但我想知道發生了什麼,因爲語法對我來說並不直觀。 我在一個單獨的線程發現這一點,這是我沒有權限發表評論在: Fast ceiling of an integer division in C/C++ 謝謝。 (請原諒任何格式的失禮,這是我第一次到這裏)