poj-3094一道简单的练手题
输入一行或者多行字符串,字符串仅由大写字母和空格组成,要求输出每一行的值,大写字母A的值为1,B为2,以此类推,空格值为0,每一行将值乘与当前字母所在位置然后累加起来。
题解:每次读入的时候进行判断,读入换行的时候就输出当前累计的值,然后累计值和位数清零,读入空格时候就读入字符,位数+1进行下一次判断,读到字符就增加位数,然后加上权值。
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
char c;
int ans=0,t=0;
scanf("%c",&c);
while(c!='#')
{
if(c=='\n')
{
printf("%d\n",ans);
ans=0;
t=0;
scanf("%c",&c);
continue;
}
t++;
if(c==' ')
{
scanf("%c",&c);
continue;
}
ans+=(c-'A'+1)*t;
scanf("%c",&c);
}
return 0;
}