假定一种编码的编码范围是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.
#include <stdio.h>
#include <string.h>#define N1 1
#define N2 25
#define N3 (25 * 25)
#define N4 (25 * 25 * 25)#define C1 N1
#define C2 (N1 + N2)
#define C3 (N1 + N2 + N3)
#define C4 (N1 + N2 + N3 + N4)int main()
{char code[5] = {0};scanf("%s", code);int index = 0;switch(strlen(code)){case 4: index += C1 * (code[3] - 'a') + 1;case 3: index += C2 * (code[2] - 'a') + 1;case 2: index += C3 * (code[1] - 'a') + 1;case 1: index += C4 * (code[0] - 'a');default: break;}printf("%d\n", index);return 0;
}