我需要一个哈希函数,将值0-9映射到0,10-19到1,20-29到2,30-39到3,-1到-9到-1,-10到 - 19到-2等
int hash (int value) {
return (int)(value / 10);
}
适用于正数,但0到-9映射到0而负数则错误。我该怎么做才能解决这个问题?
答案 0 :(得分:7)
嗯,这不是那么难,是吗。
int val = value / 10;
if(value < 0)
val--;
return val;