2016-11-21 42 views
-3

我有一個問題。我給它字符串"BC"和它輸出54不是55 在第一個週期num = 3和第二個num = 52但總和爲54爲什麼? 你能幫我嗎?整數之和的C++錯誤

string getX(string x) { 
    int ans = 0, num; 
    for (int i = 0, j = x.size() - 1; i < x.size(), j >= 0; i++, j--) { 
     num = x[j] - 64; 
     num = num * pow(26, i); 
     ans += num; 
    } 
    return to_string(ans); 
} 
+4

題外話:'我<= x.size() - 1;'可以用'I user4581301

+2

你並不需要強制轉換'(int)num',因爲'num'已經被聲明爲'int'。 – Barmar

+0

是的,我知道。 (int i = 0,j = x.size() - 1; i = 0; i ++,j - )' – Buglinjo

回答

0

round(pow(26,i))幫助。謝謝@MrPromethee

1

你不需要pow函數。 Multipy 26,再加入:

unsigned int num = 0U; 
for (j = 0; j < x.size(); ++j) 
{ 
    num = num * 26; 
    num += (x[j] - 'A'); 
} 
相關問題