题目在此SDUT 2618 手机屏幕
水题啊水题..
不多说了.
#include <stdio.h>
#include <string.h>
char num[] = {1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,4,0,1,2,3,0,1,2,3,4};
char word[] = "abc,def,ghi,jkl,mno,pqrs,tuv,wxyz";
int Issame(char c, char s)
{
int i;
int j;
for (i = 0; i < 33; i++)
{
if (word[i] == s)
{
for (j = i; j < 33; j++)
{
if (word[j] == ',')
return 0;
if (word[j] == c)
return 1;
}
}
else if (word[i] == c)
{
for (j = i; j < 33; j++)
{
if (word[j] == ',')
return 0;
if (word[j] == s)
return 1;
}
}
}
}
int main()
{
//freopen("input.txt", "r", stdin);
char temp[100];
char c;
int i, j;
int sum;
while (scanf("%s", temp) == 1)
{
bool first = true;
sum = 0;
int flag;
for (i = 0; i < strlen(temp); i++)
{
for (j = 0; j < 33; j++)
{
if (temp[i] == word[j])
{
if (first == false)
{
flag = Issame(c, temp[i]); //判断是否应该加时
if (flag == 1)
sum += 2;
}
c = temp[i];
sum += num[j];
first = false;
break;
}
}
}
printf("%d\n", sum);
memset(temp, 0, sizeof(temp));
}
return 0;
}