SORU
30 NİSAN 2010, Cuma


C / bir tamsayı bölme hızlı tavan C

Verilen tamsayı değerleri x y, C ve C q = x/y kayan nokta eşdeğer kat bölüm olarak dönmek. Bunun yerine tavana dönen bir yöntem ilgileniyorum. Örneğin, ceil(10/5)=2 ceil(11/5)=3.

Belli bir yaklaşımı gibi bir şey içerir:

q = x / y;
if (q * y < x)   q;

Bu ekstra bir karşılaştırma ve çarpma gerektirir; ve gördüğüm diğer yöntemler (aslında kullanılan) float double bir döküm içerir. Ek çarpma (ikinci bölüm) ve şube önler ve aynı zamanda kayan noktalı sayı olarak döküm önler daha doğrudan bir yöntem var mı?

CEVAP
30 NİSAN 2010, Cuma


Topla

q = (x   y - 1) / y;

ya da (x y taşma önleme)

q = 1   ((x - 1) / y); // if x != 0

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Call Me Howard

    Call Me Howa

    18 AĞUSTOS 2012
  • Klemens Torggler

    Klemens Torg

    11 Mart 2008
  • Michael Lummio

    Michael Lumm

    25 Mayıs 2007