2016-11-21 5 views
-3

Ich habe ein Problem. Ich gebe es String "BC" und es gibt 54 nicht 55 wie im ersten Zyklus num = 3 und in zweiten num = 52, aber die Summe ist 54 warum? Können Sie mir helfen?C++ Fehler bei der Summe der ganzen Zahlen

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

Off topic: 'i <= x.size() - 1;' erreicht man mit 'i user4581301

+2

Sie brauchen nicht zu cast '(int) num', da' num' bereits als 'int' deklariert ist. – Barmar

+0

Ja, ich weiß. Ich habe das auch getan 'für (int i = 0, j = x.size() - 1; i = 0; i ++, j -)' – Buglinjo

Antwort

0

round(pow(26,i)) geholfen. Danke @MrPromethee

1

Sie benötigen die pow Funktion nicht. Multipy von 26, dann fügen:

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