Quicksum

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 = 46

MID CENTRAL: 1*13 + 2*9 + 3*4 + 4*0 + 5*3 + 6*5 + 7*14 + 8*20 +
9*18 + 10*1 + 11*12 = 650

输入

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 300 characters.

输出

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

样例输入

ACM

MID CENTRAL

REGIONAL PROGRAMMING CONTEST

ACN

A C M

ABC

BBC

#

样例输出

46

650

4690

49

75

14

15
#include<stdio.h>
#include<string.h>
int main()
{
	while(1)
	{
		int sum=0,i,j,s;
		char a[300];
		gets(a);
		if(a[0]=='#')					//设置循环结束标志 
			break;
		s=strlen(a);
		for(i=0,j=1;i<s;i++,j++)		
		{
			if(a[i]==' ')				//跳过空格 
				continue;	
			if(a[i]>='A'&&a[i]<='Z');	//设置范围取大写字母的值 
			{
				sum=sum+j*(a[i]-64);
			}
		}
		printf("%d\n",sum);
	} 
	return 0;
}




下面是题目的译文:

校验和是一个算法,扫描包的数据,并返回一个数字。我们的想法是,如果包改变,校验和也会改变,所以校验和通常用于检测传输错误,验证文档内容和在其他情况下,有必要检测不良数据的变化。

对于这个问题,您将实现一个名为Quicksum校验和算法。Quicksum包只允许大写字母和空格。它总是以一个大写字母开始和结束。否则,空间和信件可以发生在任意组合,包括连续空间。

Quicksum是笔的产品包中的每个字符的位置*字符的值。空间的值为0,而字母值等于字母表里他们的立场。所以,A = 1,B = 2,等等,通过Z = 26。下面是例子Quicksum计算数据包“ACM”和“中央中期”:

ACM: 1*1  + 2*3 + 3*13 = 46

MID CENTRAL: 1*13 + 2*9 + 3*4 + 4*0 + 5*3 + 6*5 + 7*14 + 8*20 +
 9*18 + 10*1 + 11*12 = 650

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值