这里有一个密码锁,正上方是指针的位置,每次需要旋转这个锁,让某一个字母对准指针才能够进行下一步,怎么可以转动最小的步数,让指针得到想要的字符串,比如a->z 最少需要拧动锁2次,一开始指针指着a,输出想要的某一个字符串最小需要拧几下?
#include<stdio.h>
#include<string.h>
#include<math.h>
char s1[10000],s2[10000];
int main()
{
char ch;
gets(s1);
s2[0]='a';
strcat(s2,s1);
strcpy(s1,s2);
int lo,sum=0;
lo=strlen(s1);
for(int i=0;i<lo-1;i++)
{
if(fabs(s1[i]-s1[i+1])>13)
sum+=26-(fabs(s1[i]-s1[i+1]));
//else if(s1[i]==s1[i+1])
//sum+=26;
else
sum+=fabs(s1[i]-s1[i+1]);
}
printf("%d\n",sum);
}
#include<string.h>
#include<math.h>
char s1[10000],s2[10000];
int main()
{
char ch;
gets(s1);
s2[0]='a';
strcat(s2,s1);
strcpy(s1,s2);
int lo,sum=0;
lo=strlen(s1);
for(int i=0;i<lo-1;i++)
{
if(fabs(s1[i]-s1[i+1])>13)
sum+=26-(fabs(s1[i]-s1[i+1]));
//else if(s1[i]==s1[i+1])
//sum+=26;
else
sum+=fabs(s1[i]-s1[i+1]);
}
printf("%d\n",sum);
}