Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Memastikan Keputusan Positif Apabila Menggunakan Operator Modulus dengan Nombor Negatif?

Bagaimana untuk Memastikan Keputusan Positif Apabila Menggunakan Operator Modulus dengan Nombor Negatif?

Mary-Kate Olsen
Lepaskan: 2025-01-13 13:42:44
asal
250 orang telah melayarinya

How to Ensure Positive Results When Using the Modulus Operator with Negative Numbers?

Selesaikan masalah mengambil nombor modulo negatif dengan bijak

Banyak bahasa pengaturcaraan menyediakan pengendali modulo (%), yang digunakan untuk mengira baki selepas membahagikan satu nombor dengan yang lain. Walau bagaimanapun, apabila pengendali ini digunakan pada nombor negatif, keputusan yang tidak dijangka mungkin berlaku.

Sebagai contoh, apabila melaksanakan -1 % 3 dalam bahasa seperti C atau Java, hasilnya ialah -1 dan bukannya 2 yang dijangkakan. Ini kerana pengendali modulo biasanya mengembalikan baki operasi pembahagian, yang mungkin negatif untuk dividen negatif.

Untuk mengatasi masalah ini dan mendapatkan tingkah laku yang diingini, fungsi mod tersuai boleh dilaksanakan:

<code class="language-c++">int mod(int x, int m) {
    return (x % m + m) % m;
}</code>
Salin selepas log masuk

Menggunakan fungsi ini, hasil pengiraan berikut adalah seperti yang dijangkakan:

输入 预期输出 函数输出
-1 % 3 2 mod(-1, 3) = 2
-2 % 3 1 mod(-2, 3) = 1
-3 % 3 0 mod(-3, 3) = 0

Cara fungsi ini berfungsi ialah ia memastikan bahawa hasilnya sentiasa positif dengan menambahkan modulus kepada sebarang nilai negatif yang diperolehi oleh operasi modulo awal.

Atas ialah kandungan terperinci Bagaimana untuk Memastikan Keputusan Positif Apabila Menggunakan Operator Modulus dengan Nombor Negatif?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan