发现一个迷
int row_num = 0;
for(int i=0,len = row.length();i<len;i++)
{
cout<<"1.row_num = "<<row_num<<"\n";
cout<<(row[i]-'A'+1)*pow(26,len-1-i)<<"\n";
row_num += ((row[i]-'A'+1)*pow(26,len-1-i));
cout<<(row[i]-'A'+1)*pow(26,len-1-i)<<"\n";
cout<<"2.row_num = "<<row_num<<"\n";
cout<<"\n";
}
(row[i]-'A'+1)*pow(26,len-1-i) 这个东西cout出来是26
,然后row_num 加上它,之后有输出了一遍 (row[i]-'A'+1)*pow(26,len-1-i) 这个还是26,在输出row_num发现是25,,,???好迷惑啊,到底是哪里的问题?(row_num我已经初始化为0了)
这是输出结果:
1.row_num = 0
26
26
2.row_num = 25
row是一个字符串,内容就是AA,第一次循环的时候row_num是25 ,第二次是1,最后结果是26.
但我觉得不应该是:第一次26,第二次1 结果27吗?