题目
思路
与168列名称刚好反过来,类似于进制转换
- for循环遍历,从头获取每个字符,注意题目中的序号是从1开始的,所以这里每次都有+1,即columnTitle[i]-‘A’+1
- 乘以多少次方,借助pow()函数即可
代码
#include<iostream>
#include<cmath>
using namespace std;
int titleToNumber(string columnTitle) {
int num=0;
int len=columnTitle.length();
for(int i=0;i<len;i++){
cout<<num<<" ";
num += (columnTitle[i]-'A'+1)*pow(26,len-i-1);
cout<<num<<" "<<pow(26,len-i-1)<<" "<<len-i-1<<endl;
}
return num;
}
int main(){
string column;
cin>>column;
int num=titleToNumber(column);
cout<<num<<endl;
return 0;
}