2016-05-04 108 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得到312,1234得4123)旋轉你的號碼。

對於文件的部分:你必須打開它,讀出的值,將其轉換爲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(); 
} 
相關問題