hdu acm-step 1.2.6 Quicksum

 

    这道题的题意给出多个字符串,计算每个字符串每一位的下标与对应值乘积的和,其中A-Z对应1-26,空格对应0,遇到#结束输入.

下面是代码:

#include <cstdio>
#define M 0xbf
using namespace std;


int main(void)
{

        char ch;

        do
        {

                int sum = 0;

                int i = 1;

                ch = getchar();

                while(ch != '\n' && ch != '#')
                {

                        if(ch == ' ')

                                ch = 0;

                        sum += (M & ch) * i;

                        i++;

                        ch = getchar();

                }

                if(ch == '\n')

                        printf("%d\n",sum);

        }while(ch != '#');

        return 0;

}

注意要用getchar(),不能用scanf("%s",a),不然无法处理空格.

另外注意&的优先级.

posted @ 2017-08-16 14:00  mtl6906  阅读(123)  评论(0编辑  收藏  举报