Rumah  >  Artikel  >  pembangunan bahagian belakang  >  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
Susan Sarandonasal
2024-11-26 14:04:13266semak imbas

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;
}

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!

Kenyataan:
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