描述为了Z大程度地节约存储空间,经常需要把信息进行编码。一种很有效的编码方法是用数字来表示一串字符。假设这些字符串都是由不重复的英文小写字母组成的,且每个字符串中的英文字母都是从小到大排列的。这个编码系统按照如下的方式工作:字符串是按照长度... 描述为了Z大程度地节约存储空间,经常需要把信息进行编码。一种很有效的编码方法是用数字来表示一串字符。假设这些字符串都是由不重复的英文小写字母组成的,且每个字符串中的英文字母都是从小到大排列的。这个编码系统按照如下的方式工作:字符串是按照长度从小到大的顺序排列的长度相同的字符串,是按照字典需排列的则根据这个编码系统,所有的字符串从 a 开始可以编码如下: a - 1 b - 2 ... z - 26 ab - 27 ... az - 51 bc - 52 ... vwxyz - 83681 ... 那么,请编程计算出一个字符串在这个编码系统下编码后的值是多少。输入输入的diyi行为 N,表示有 N 组数据。后面的 N 行每行包含一个不超过 10 个字母的字符串。输出输出字符串所对应的编码,如果该字符串不能被编码,则输出 0。 测SY例 1以文本方式显示 1↵ bf 输出55↵
以下是我的程序,有一个保密的测SY例过不了,求指导
#include
#include
int main ()
{
long long fac(int n,int m);
int i,j,k,l,n,len;
long long pos;
char str[11];
char *p;
scanf("%d\n",&n);
for(i=1;i<=n;i++)
{
pos=0;
for(p=str;(*p=getchar())!='\n';p++)
if(*p==EOF) break;
*p='\0';
for(p=str;*(p+1)!='\0'&&*p<*(p+1);p++);
if(*(p+1)!='\0')
{
printf("0\n");
continue;
}
len=strlen(str);
for(j=1;j