Quicksum

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 8353    Accepted Submission(s): 5614

Problem Description
A checksum is an algorithm that scans a packet of data and returns a single number. The idea is that if the packet is changed, the checksum will also change, so checksums are often used for detecting transmission errors, validating document contents, and in many other situations where it is necessary to detect undesirable changes in data.

For this problem, you will implement a checksum algorithm called Quicksum. A Quicksum packet allows only uppercase letters and spaces. It always begins and ends with an uppercase letter. Otherwise, spaces and letters can occur in any combination, including consecutive spaces.

A Quicksum is the sum of the products of each character's position in the packet times the character's value. A space has a value of zero, while letters have a value equal to their position in the alphabet. So, A=1, B=2, etc., through Z=26. Here are example Quicksum calculations for the packets "ACM" and "MID CENTRAL":

ACM: 1*1 + 2*3 + 3*13 = 46MID CENTRAL: 1*13 + 2*9 + 3*4 + 4*0 + 5*3 + 6*5 + 7*14 + 8*20 + 9*18 + 10*1 + 11*12 = 650
 
Input
The input consists of one or more packets followed by a line containing only # that signals the end of the input. Each packet is on a line by itself, does not begin or end with a space, and contains from 1 to 255 characters.
 
Output
For each packet, output its Quicksum on a separate line in the output.

 
 
Sample Input
 
ACM MID CENTRAL REGIONAL PROGRAMMING CONTEST ACN A C M ABC BBC #
 
Sample Output
 
46 650 4690 49 75 14 15

Source

Mid-Central USA 2006

题解:

#include<cstdio>
#include<iostream>
using namespace std;
#include<string>
int main()
{
    string str ;
    while (getline(cin, str) && str != "#")
    {
        int sum = 0;
        for (int i = 0; i < str.length(); i++)
        {
            if (str[i] != ' ')
                sum = sum + (str[i]-'A'+1)*(i + 1);
        }
        cout << sum << endl;
    }
    return 0;
}

最新文章

  1. 使用excel计算指数平滑和移动平均
  2. scala 打印一个乘法口诀表 (&lt;&lt;scala 编程&gt;&gt; P87)
  3. iOS开发小技巧--判断控件是否显示在当前窗口
  4. 数据结构Java实现05----栈:顺序栈和链式堆栈
  5. Visual studio 2013的安装和单元测试
  6. SGU185 - Two Shortest
  7. EXCEL VBA运行不显示系统提示
  8. js获取设备信息
  9. 实现jul 日志重定向到 slf4j
  10. select可选择、同时可自行输入
  11. 常用Linux操作指令
  12. 2016 湖南省省赛 Problem A: 2016
  13. 推荐免费小巧图片大小处理工具--Image Resizer for Windows
  14. bzoj 4008 亚瑟王 期望概率dp
  15. 排列组合n选m算法
  16. css border 三角形
  17. Openssl源代码整理学习
  18. 洛谷 P1121 环状最大两段子段和 解题报告
  19. TensorBoard 简介及使用流程【转】
  20. 样条之CatmullRom

热门文章

  1. Gradle上传依赖到私服(nexus)
  2. 【题解】「SP867」 CUBES - Perfect Cubes
  3. NOI Online #2 提高组 游戏
  4. Codeforces Edu Round 47 A-E
  5. SpringBoot+Redis相关配置文件
  6. Angular:使用service进行数据的持久化设置
  7. 自顶向下redis4.0(1)启动
  8. 迭代 可迭代对象 迭代器的bj
  9. Cisco Packet Tracer NAT模拟实验
  10. 题解 P1579 【哥德巴赫猜想(升级版)】