Quicksum

来源:互联网 发布:淘宝买飞机 编辑:程序博客网 时间:2024/05/21 10:40

Description

A checksum is an algorithm that scans a packet of data and returnsa single number. The idea is that if the packet is changed, thechecksum will also change, so checksums are often used fordetecting transmission errors, validating document contents, and inmany other situations where it is necessary to detect undesirablechanges in data. For this problem, you will implement a checksumalgorithm called Quicksum. A Quicksum packet allows only uppercaseletters and spaces. It always begins and ends with an uppercaseletter. Otherwise, spaces and letters can occur in any combination,including consecutive spaces. A Quicksum is the sum of the productsof each character's position in the packet times the character'svalue. A space has a value of zero, while letters have a valueequal to their position in the alphabet. So, A=1, B=2, etc.,through Z=26. Here are example Quicksum calculations for thepackets "ACM" and "MID CENTRAL": ACM: 1*1 + 2*3 + 3*13 = 46 MIDCENTRAL: 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 linecontaining only # that signals the end of the input. Each packet ison a line by itself, does not begin or end with a space, andcontains from 1 to 255 characters.

Output

For each packet, output its Quicksum on a separate line in theoutput.

Sample Input

ACMMID CENTRALREGIONAL PROGRAMMING CONTESTACNA C MABCBBC#

Sample Output

46650469049751415




  1. #include <stdio.h>
  2. #include <string.h>
  3. int main()
  4. {
  5.     int i,k=0;
  6.     char c[260];
  7.     while(gets(c))
  8.     {
  9.        k=0;
  10.        if(c[0]=='#') break;
  11.        for(i=1; i<=strlen(c); i++)
  12.        {
  13.           if(c[i-1]!=' ') k=k+i*(c[i-1]-'A'+1);
  14.        }
  15.        printf("%d\n",k);
  16.     }
  17.     return 0;
  18. }
0 0
原创粉丝点击