4 AĞUSTOS 2010, ÇARŞAMBA
C : Bir sayının en yakın katına Yuvarlama
OK - basit bir soru gibi görünüyor burada, bu (ve eğer biri kapatmak için oy kullanırsa sileceğim) gönderme neredeyse utanıyorum.
Bu doğru yolu C sayıda bir çok yuvarlak.
Diğer soru Bu ile ilgili olduğunu biliyorum ama specficially C bunu yapmak için en iyi yolu nedir merak ediyorum :
int roundUp(int numToRound, int multiple)
{
if(multiple == 0)
{
return numToRound;
}
int roundDown = ( (int) (numToRound) / multiple) * multiple;
int roundUp = roundDown multiple;
int roundCalc = roundUp;
return (roundCalc);
}
Güncelleme: Üzgünüm, muhtemelen niyeti netleştirmedi. İşte bazı örnekler:
roundUp(7, 100)
//return 100
roundUp(117, 100)
//return 200
roundUp(477, 100)
//return 500
roundUp(1077, 100)
//return 1100
roundUp(52, 20)
//return 60
roundUp(74, 30)
//return 90
EDİT: tüm cevaplar için Teşekkürler. Girdim işte:
int roundUp(int numToRound, int multiple)
{
if(multiple == 0)
{
return numToRound;
}
int remainder = numToRound % multiple;
if (remainder == 0)
{
return numToRound;
}
return numToRound multiple - remainder;
}
CEVAP
4 AĞUSTOS 2010, ÇARŞAMBA
Bu pozitif sayılar için değil emin hakkında olumsuz çalışır. Sadece tamsayı matematiği kullanır.
int roundUp(int numToRound, int multiple)
{
if(multiple == 0)
{
return numToRound;
}
int remainder = numToRound % multiple;
if (remainder == 0)
return numToRound;
return numToRound multiple - remainder;
}
Edit: Burada" her zaman >bu sonuç ne demek "ile negatif sayılar ile, eğer çalışan bir versiyonu. = girişi.
int roundUp(int numToRound, int multiple)
{
if (multiple == 0)
return numToRound;
int remainder = abs(numToRound) % multiple;
if (remainder == 0)
return numToRound;
if (numToRound < 0)
return -(abs(numToRound) - remainder);
return numToRound multiple - remainder;
}
Bunu PaylaÅŸ:
Yuvarlama 2 yakın güce kadar...
Yakın/Android Klavyeyi gizlemek...
Nasıl tek bir tampon (çok) yakın Vim y...
Ne'en yakın Java'da bir işlev işa...
En yakın dize maç başlarken...