把字母数量看成是3个,只有a、b、c,找规律,发现每一位的权值就是1、26、26 * 26……,倒序循环模拟求解即可。
#include <stdio.h>
long long n, m, i, j, k;
char s[18];
int main(){
scanf("%s", s+1);
for(i=m=1; s[i]; i++) ;
for(i--; s[i]; i--){
k = s[i] - 64;
n += k*m, m *= 26;
}//权值依次是1 26 26*26 ...
printf("%lld\n", n);
return 0;
}