2016-05-04 18 views
0

ハッシュテーブルとハッシュメソッド(除算や乗算など)を理解しようとしていますが、キーがシリアルのときに回転メソッドを実装する方法が不思議でした。私がint rotation(int value)という名前の関数を持っていて、int test = 123456のような整数を持っていて、結果を612345にしたかったとします。これを普遍的に実装する最良の方法は何でしょうか?(1000個の整数グループのテキストファイルで)C++でハッシュローテーションメソッドを実装する最善の方法は何ですか?

答えて

1
int rotate(int value) 
{ 
    bool isNegative = value < 0; 
    if(isNegative) 
     value = -value; 
    int v = value % 10; 
    value /= 10; 
    while(v < value) 
     v *= 10; 
    value += v; 
    return isNegative ? -value : value; 
} 

これは暗号のその数(123 1234 4123を取得し、312を取得します)に応じて、あなたの番号を回転します。ファイルの部分については

:あなたは、それを開く値を読み取る、関数INTと呼び出すためにそれらを変換する必要があります:

::std::ifstream in("filename"); 
if(in.fail()) 
{ 
    // error 
} 
else 
{ 
    int n; 
    for(;;) 
    { 
     in >> n; 
     if(in.eof() || in.fail()) 
      break; 

     ::std::cout << rotate(n) << ::std::endl; 
    } 
    in.close(); 
} 
関連する問題