C ++整数之和错误

时间:2016-11-21 20:28:11

标签: c++ c++11

我有问题。我给它字符串"BC",它输出54而不是55 如在第一个周期num = 3和第二个num = 52中,但总和是54为什么? 你能救我吗?

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);
}

2 个答案:

答案 0 :(得分:1)

您不需要pow功能。 Multipy by 26,然后添加:

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

答案 1 :(得分:0)

round(pow(26,i))帮助。谢谢@MrPromethee