一、取余运算的意义

大家对取余操作应该不陌生,在很多编程语言里整型类型数据做除法的时候只能得到小数点前的整数部分,例如C、C++、C#等,所以我们用取余的方式获取小数点后的值。那么,除此之外,取余的意义是什么?我们为什么要做取余的操作呢?
前两天看见群友在问[leetcode的1652题,题目的大致内容就是将一个数组中的每一位都用其他几位相加而来,具体几位则有常量k值决定,这里的取余是为了获取新组成的数组的下标值。解题如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class Solution {
public int[] Decrypt(int[] code, int k) {
int _len = code.Length;
int[] _res = new int[_len];
int _dic = k >= 0 ? k == 0 ? 0 : 1 : -1;
for(int i = 0; i < _len; i++)
{
int _sum = 0;
for(int j = _dic; j != k + _dic; j += _dic)
{
_sum += code[(i + j + _len) % _len];
}
_res[i] = _sum;
}
return _res;
}
}

所以,回到标题,取余运算的意义一般是给一个数界定一个范围,比如 x = y % 100(x,y >= 0),那么就是规定了x的取之范围是(0 - 100),这就像一个圈一样,y % 100 就是这个圈上的每一个点。