Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Membundarkan Nombor Dengan Cekap kepada Gandaan Terdekat dalam C ?

Bagaimanakah Saya Boleh Membundarkan Nombor Dengan Cekap kepada Gandaan Terdekat dalam C ?

Susan Sarandon
Lepaskan: 2024-11-26 14:04:13
asal
356 orang telah melayarinya

How Can I Efficiently Round Up Numbers to the Nearest Multiple in C  ?

Membundarkan Hingga Gandaan Nombor dalam C

Apabila bekerja dengan nombor dalam pengaturcaraan, mungkin perlu untuk membulatkan nilai kepada gandaan terdekat bagi nombor lain. Terdapat pelbagai cara untuk mendekati tugasan ini dalam C , tetapi artikel ini akan menumpukan pada kaedah yang cekap yang memanfaatkan aritmetik integer untuk mencapai pembundaran yang tepat.

Coretan kod yang disediakan, roundUp, menawarkan penyelesaian yang mudah untuk nombor positif. Ia mengira baki apabila nombor input numToRound dibahagikan dengan gandaan dan menambah gandaan kepada numToRound jika bakinya bukan sifar. Ini memastikan bahawa hasilnya ialah gandaan terdekat yang lebih besar daripada atau sama dengan input.

Walau bagaimanapun, untuk nombor negatif, kod asal tidak memberikan gelagat yang diingini. Untuk menampung nombor negatif, versi roundUp yang diubah suai diperkenalkan. Versi ini mengira nilai mutlak nombor input sebelum melakukan operasi pembundaran. Selain itu, ia menggunakan logik bersyarat untuk melaraskan tanda hasil berdasarkan tanda input. Ini memastikan bahawa keputusan sentiasa lebih besar daripada atau sama dengan input, tanpa mengira tandanya.

Berikut ialah kod yang dikemas kini untuk mengendalikan kedua-dua nombor positif dan negatif:

int roundUp(int numToRound, int multiple)
{
    if (multiple == 0)
        return numToRound;

    int remainder = abs(numToRound) % multiple;
    if (remainder == 0)
        return numToRound;

    if (numToRound < 0)
        return -(abs(numToRound) - remainder);
    else
        return numToRound + multiple - remainder;
}
Salin selepas log masuk

Kini, fungsi roundUp menyediakan gelagat yang konsisten untuk kedua-dua input positif dan negatif, memastikan pembundaran tepat kepada gandaan terdekat bagi nombor yang diberikan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membundarkan Nombor Dengan Cekap kepada Gandaan Terdekat dalam C ?. 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