Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mengira Siling Bahagian Integer dalam C/C tanpa Operasi Darab atau Titik Terapung?

Bagaimana untuk Mengira Siling Bahagian Integer dalam C/C tanpa Operasi Darab atau Titik Terapung?

Susan Sarandon
Lepaskan: 2024-11-22 08:48:14
asal
988 orang telah melayarinya

How to Calculate the Ceiling of Integer Division in C/C   without Multiplication or Floating-Point Operations?

Siling Pembahagian Integer tanpa Pendaraban atau Tuangan Titik Terapung

Dalam C dan C , pembahagian integer (x/y) mengembalikan lantai daripada hasilnya. Untuk mengira siling sebaliknya, mengelakkan tuangan titik terapung dan pendaraban tambahan, pertimbangkan kaedah berikut:

1. Menggunakan (x y - 1) / y:

unsigned int x, y, q;
// Round up
q = (x + y - 1) / y;
Salin selepas log masuk

Formula ini memastikan siling dikira, kerana ia menambah 1 sebelum melakukan pembahagian.

2. Mengelakkan Limpahan dalam (x y):

Untuk mengelakkan limpahan integer apabila menambah x dan y, kaedah alternatif ialah:

q = 1 + ((x - 1) / y); // if x != 0
Salin selepas log masuk

Rumusan ini secara berkesan menambah siling sebanyak 1, kecuali apabila x ialah 0, di mana ia kekal 0.

Atas ialah kandungan terperinci Bagaimana untuk Mengira Siling Bahagian Integer dalam C/C tanpa Operasi Darab atau Titik Terapung?. 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