Quicksum
来源:互联网 发布:电信光猫网络不稳定 编辑:程序博客网 时间:2024/05/18 02:50
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
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
ACMMID CENTRALREGIONAL PROGRAMMING CONTESTACNA C MABCBBC#
Sample Output
46650469049751415
Source
Mid-Central USA 2006
#include <iostream>#include <string.h>using namespace std;int main(){char a[255];int i, sum;int len;while(gets(a)){ if (a[0] == '#'){ break; } len = strlen(a); sum = 0; for (i = 0; i < len; i++){ if (a[i] != ' '){ sum += (i + 1) * (a[i] - 64); } } cout << sum << endl; }return 0;}
0 0
- Quicksum
- Quicksum
- QuickSum
- Quicksum
- Quicksum
- Quicksum
- Quicksum
- Quicksum
- Quicksum
- Quicksum
- Quicksum
- Quicksum
- Quicksum
- Quicksum
- Quicksum
- Quicksum
- Quicksum
- Quicksum
- Buildings
- Android 自定义View (二) 进阶
- Android 自定义View (三) 圆环交替 等待效果
- iOS之OC源码相册循环查看图片功能的实现
- 中在eclipse下如何将程序打成jar包
- Quicksum
- Android 自定义View (四) 视频音量调控
- 软件测试_JMeter自动化测试工具1_JMeter简介
- 【杭电oj】1091 - A+B for Input-Output Practice (III)(注意0,0结束输出)
- Android 屏幕适配方案
- 神经网络
- 【2016新年版】年度精品 XP,32/64位Win7,32/64位Win8,32/64位Win10系统
- GPA
- Android AutoLayout全新的适配方式 堪称适配终结者