我有问题。我给它字符串"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);
}
答案 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