编程与数学

1. 累加

先考虑一个简单的例子,数组表示十进制数的每一位,将数组转化为整数形式:

∑i=0n−1num[n−1−i]⋅10i

for (int i = 0; i < n; ++i)
    x = (x * 10 + num[i]);

再考虑一个相对复杂的情况:

∑i=0n−1Key[n−1−i]⋅32i

Index Hash(const char* Key, int TableSize){
    unsigned int HashVal = 0;
    while (*Key != '\0'){
        HashVal = (HashVal << 5) + *Key++;
    }
    return HashVal % TableSize;
}
posted on 2016-09-20 15:57  未雨愁眸  阅读(146)  评论(0)    收藏  举报