2012-10-26 80 views
0

數組a包含數字的數字。在這個例子中,我將插入隨機數字,但代碼必須適用於任何數字集合。我必須將數組中的整數相加,然後將該總和中的最後一位數字存儲到稱爲校驗和的變量中。簡單校驗和算法

在這個例子中,3 + 5 + 7 = 15所以校驗和會= 5.這是我的代碼到目前爲止。我將如何去計算校驗和?

int[] a = { 3, 5, 7 }; 

int checksum = 0; 
int i = 0; 

while (i < a.length) 
    { 
     checksum += a[i]; 
     i++; 
    } 

checksum = ???????; 
+0

你在找? http://stackoverflow.com/questions/2609315/recognizing-when-to-use-the-mod-operator – irrelephant

回答

2

只需使用模數運算符。 checksum %= 10

這基本上意味着,將checksum設置爲checksum/10的其餘部分,這恰好是最後一位數字。

編輯:

只是爲了提供了另一種建議,你while循環是真的更適合做個for-each循環,只是嘗試:

for(int i : a){ 
    checksum += i; 
} 

它讀作 「對於aint i」。恕我直言,這是稍微更容易理解,你避免一些打字。

+0

你不是指校驗和%= a.length? –

+0

@ile不,檢查上面給出的例子,他想要最後一個數字。 – jozefg

+0

對不起,我把校驗和與平均值混淆了。但是,我仍然認爲你的答案是錯誤的。如果值爲1,3,7,那麼%=將返回1,而如果我理解正確,它應該是3 - 「將該總和中的最後一個數字存儲到名爲校驗和的變量中」 –