Quicksum
来源:互联网 发布:淘宝的安佳牛奶 编辑:程序博客网 时间:2024/05/21 10:26
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
==================================================================
#include<string.h> int main(){ int i,len; char a[1000]; while(gets(a)) { int sum=0; if(!strcmp(a,"#")) break; len=strlen(a); for(i=0;i<len;i++) { if(a[i]==' ') a[i]=0; else a[i]-=64; sum+=a[i]*(i+1); } printf("%d\n",sum); } return 0;}
0 0
- Quicksum
- Quicksum
- QuickSum
- Quicksum
- Quicksum
- Quicksum
- Quicksum
- Quicksum
- Quicksum
- Quicksum
- Quicksum
- Quicksum
- Quicksum
- Quicksum
- Quicksum
- Quicksum
- Quicksum
- Quicksum
- C++之“友元类”学习笔记
- zoj 3890 Wumpus bfs
- webrtc android demo开发
- 静态代理与动态代理
- Python脚本调试方法
- Quicksum
- Smart3D Capture技术突破—航空与街景数据融合自动建模
- Java学习--(一)环境配置与Eclipse安装
- 利用指针地址偏移打印一维数组
- EhCache缓存在集群环境中同步问题
- 可执行程序的结构
- bzoj1002【fjoi2007】轮状病毒
- Balloon Comes!
- 新生儿是否应饿着