2012-10-26 82 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 - “将该总和中的最后一个数字存储到名为校验和的变量中” –