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),不然无法处理空格.
另外注意&的优先级.