題目描述:
假定一種編碼的編碼範圍是a ~ y的25個字母,從1位到4位的編碼,如果我們把該編碼按字典序排序,形成一個數組如下: a, aa, aaa, aaaa, aaab, aaac, … …, b, ba, baa, baaa, baab, baac … …, yyyw, yyyx, yyyy 其中a的Index爲0,aa的Index爲1,aaa的Index爲2,以此類推。 編寫一個函數,輸入是任意一個編碼,輸出這個編碼對應的Index.
輸入描述:
輸入一個待編碼的字符串,字符串長度小於等於100.
輸出描述:
輸出這個編碼的index
示例1
輸入
baca
輸出
16331
參考程序:
#include <iostream>
using namespace std;
int main(){
char c;
int n=5,sum=0;
while(--n){
cin.get(c);
if(c=='\n')break;
c-='a';
switch(n){
case 4:sum+=c*16276;break;
case 3:sum+=c*651+1;break;
case 2:sum+=c*26+1;break;
case 1:sum+=c+1;break;
}
}
cout<<sum<<endl;
return 0;
}