2014-10-12 19 views

cevap

2

Mod operatörü dağıtıcıdır; Hatırladığım gibi

(x % z + y % z) % z 
+0

eşdeğeri (x% z + y% z)% z – hasan83

5

:

(x + y) % z 

... eşdeğerdir. Aşağıdaki denklem tek bir amaca fayda sağlayacaktır. Sayıların toplamı toplamı için kullanılan değişkenin kapasitesini aşıyorsa. ex. 32 bit int. Bu şekilde, büyük olasılıkla, toplam varyasyonda kullanılan toplam modülerlerin toplamıdır. x değerine ve dizi uzunluğuna bağlı olarak.

Örnek kodu

int sum = 0; 
for (int i=0;i<n;i++) 
    sum += a[i] % x; 
int mod = sum % x; 

iyi yaklaşım (çok emin)

int sum = 0; 
for (int i=0;i<n;i++) { 
    sum += a[i] % x; 
    sum %= x; 
} 
int mod = sum; 
-3

$ \ sum_ {i = 1}^{N-} \ sol (i \% m \ sağ) = \ metni {int} \ sol (\ frac {N-} {m} \ sağ) \ cdot \ sol (\ sum_ {i = 1}^{m-1} i doğru \) + \ sum_ {i = 1}^{N \% m} i = \ text {int} \ left (\ frac {N} {m} \ right) \ cdot \ frac {(m-1) \ cdot m} {2} + \ frac {N \% m \ cdot (N \% m + 1)} {2} $

İlgili konular