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

  • hockeywebcasts

    hockeywebcas

    31 EKİM 2012
  • Monica Catral

    Monica Catra

    12 NİSAN 2009
  • SuperPrincessjo

    SuperPrinces

    1 EKİM 2010