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

  • FrameCityJackal

    FrameCityJac

    4 Aralık 2010
  • LivestrongWoman

    LivestrongWo

    1 Aralık 2011
  • Drakinen

    Drakinen

    1 EYLÜL 2008