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

  • MultiPlayStationMan

    MultiPlaySta

    17 Aralık 2009
  • SaraBeautyCorner - Nails and Nail Art Designs, DIY, Fashion & Makeup Tutorial

    SaraBeautyCo

    7 EKİM 2012
  • Semantic Mastery

    Semantic Mas

    30 EKİM 2013