题意就是读入一个字符串,A代表1,Z代表26,除了空格外,sum等于下标*字母数值之和,下标从1开始。例如AAB=1*1+2*1+3*2;
这题是大水题而已,需要注意的是空格是可以被读入的,故要用gets( )函数,还有strcmp()==0才是两字符串相等,这种基础知识我都忘了,惭愧惭愧
#include<iostream>
#include<string>
using namespace std;
int main()
{
int sum,len;
char s[256];
while(gets(s)) //gets()函数可以把空格读入字符串。scanf和cin好像都不行
{
sum=0;
if(strcmp(s,"#")==0) break; //用strcmp判断是否等于结束符号
len=strlen(s);
for(int i=0;i<len;i++)
if(s[i]!=' ')
sum+=(i+1)*(s[i]-'A'+1); //注意加1
cout<<sum<<endl;;
}
}