本帖最后由 lsf304580500 于 2011-12-17 16:11:10 编辑

解决方案 »

  1.   

    最简单的:int hash(int a){
        return a; // 直接返回a,应该a本身就是一个0-9的一位数,这是符合要求的。
    }hash值就是一个整数,没啥特别的
      

  2.   

    晕,要是这样我早就这么做了,当a为2时,返回的b不能为2,是一个通过a哈希出的另一个0-9的数
      

  3.   

    你的意思是hash值不能和原来数一样?int hash( int a) {
        return a ^ 0x1; // 把a的二进制表示的最后一位取反。 比如 1001 变成 1000, 1000变成1001. 这样结果也不会大于你传进来的数的最大值
    }
      

  4.   

    如果a是有可能大于9,并且要求其hash值不能大于9,那么可以这么做:int hash(int a){
        int result = a % 10;    return result ^ 0x1 ;
    }