2010-08-06 14 views
14

ProgramaC# modülü operatörü

int a = 3; 
int b = 4; 

Console.WriteLine(a % b); 

alıyorum cevap 3. Nasıl 3 mod 4 = 3 olduğunu yazabiliriz ???

Bunun nasıl hesaplandığını anlayamıyorum.

http://en.wikipedia.org/wiki/Modulo_operator

kalan 3 ise neden anlamaya yapamıyorsanız

4/3 = 3. kalanı, buralarda more serious problems var Çünkü

+13

sonuç doğrudur:

Temel olarak, en hızlı şekilde benzer iyi eski moda modülü operatör vardır. Geri dönmek için ne bekliyordun? –

+0

% b değil bir% b düşünmektesiniz. –

+1

Ne beklediğime emin değildim, ancak geri kalanın nasıl olduğunu 3 anlayamadım. –

cevap

42

.

+0

Gerçekten çok komik.Ancak, ondalık bir ondalık noktası ekleyerek ve daha fazla sıfırlar elde etmek için temettü ekleyerek matematik problemini genişletebilirsiniz. Mod operatörünün bunu yapamayacağını bilmiyordum, bu yüzden soruyu neden sordum. –

+1

.75 bir bölüm değil. Tanım olarak, bölüm bir tamsayıdır. – quantumSoup

+0

Sadece tamsayıları düşünün, ondalık değil –

15

3 mod 4 4 Pek emin değildi 3.

44

bir kalanı 3 sıfır kez geçer, 3 Bu durumda 4.

ile bölünmesinden kalan ne , beklemek ama Yani 3 çerezleri varsa ve eşit 4 kişi arasında ayrımın onlara istediğiniz kalan 3.

nasıl çözemedim. çerezlerinden daha fazla insan olduğundan

, kimse bir çerez (katsayısı = 0) alır ve kendiniz için bir kalanını 3 çerezleri var. :)

+29

Bu noktada diğer üç kişi sizi atlar ve çerezlerinizi alır. –

+4

Bu cevaplar OP'nin sorusunu daha çocuk dostu bir şekilde yanıtlıyor gibi görünüyor. Şimdi bile neden 3 olduğunu anlıyorum, teşekkürler. lol –

1

Zaten kullanıcının cevapları anladığını düşünüyorum .. çünkü çok iyi bir programcı var .. basit bir ifadeyle .. % hatırlatmayı kendi tam sayınızla böldükten sonra hatırlatıyor.

örn.

int a = int.parse(console.readline()); 
int b = a % 2; 

şimdi giriş 13 kadarı 2 kalanı basit matematik 1'dir tarafından dalış 13 sonra çünkü, 1 verecektir. Umarım buna sahipsin.

+0

Açıklama için alkış –

2

Diğerleri tarafından açıklandığı gibi, ancak "mod" operatörünü kullanmak istemiyorsanız. Burada "a" bölü kalanını anlamaya denklem "n"

a-(n* int(a/n))

0

Başka bir "başkaları ile açıklanabilir", ancak (modülüne yapmanın birkaç fazla yol merak iseniz veya Alternatif bir yöntem kullanın), read this article which benchmarks a few different ways yapabilirsiniz.

if (x % threshold == some_value) 
{ 
    //do whatever you need to 
}