字符串数字问题:字符A或a对应1,B或b-2,c-3,…Z或z-26,aa-27,ab-28,Ac-29…,BA-53,bb-54,…如此类推. 要求输入最多10个字母的字符串,按以上对应关系输出其对应的十进制双精度数值。
输入格式:
在一行中输入26个大写或小写字母构成的字符串:如ABc
输出格式:
输出字符串对应的十进制双精度数值,保留两位小数:如731.00
输入样例1:
aBc
输出样例1:
731.00
输入样例2:
abcdefghij
输出样例2:
5872551179180.00
#include<bits/stdc++.h>
#define fi first
#define se second
#define SZ(x) ((int)x.size())
#define pb push_back
#define rep(i,a,b) for(int i=(a);i<=(b);++i)
#define per(i,a,b) for(int i=(a);i>=(b);--i)
#define mem(a,b) memset(a,b,sizeof a)
using namespace std;
typedef vector<int> vi;
typedef pair<int,int> pii;
typedef long long ll;
template <class T>
inline void read(T &x) {
x=0;
int f=0;
char c=getchar();
while(!isdigit(c)) {
f|=(c=='-');
c=getchar();
}
while(isdigit(c)) {
x=(x<<3)+(x<<1)+c-'0';
c=getchar();
}
if(f) x=-x;
}
const int maxn=1e5+5;
ll gcd(ll x,ll y){
return y==0?x:gcd(y,x%y);
}
int main() {
ll sum=0;
char c;
while((c=getchar()) && c!='\n'){
if(isupper(c)){
sum=sum*26+c-'A'+1;
}
else
sum=sum*26+c-'a'+1;
}
cout << sum << ".00";
return 0;
}