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

  • GOTO Conferences

    GOTO Confere

    3 EKİM 2011
  • Helder Barreto

    Helder Barre

    22 Mayıs 2006
  • kamaniusilelis

    kamaniusilel

    10 HAZİRAN 2011