`

(Problem 22)Names scores

阅读更多

Using names.txt (right click and 'Save Link/Target As...'), a 46K text file containing over five-thousand first names, begin by sorting it into alphabetical order. Then working out the alphabetical value for each name, multiply this value by its alphabetical position in the list to obtain a name score.

For example, when the list is sorted into alphabetical order, COLIN, which is worth 3 + 15 + 12 + 9 + 14 = 53, is the 938th name in the list. So, COLIN would obtain a score of 938 × 53 = 49714.

What is the total of all the name scores in the file?

 

题目大意:

文件names.txt (右键另存为)是一个46K大小的文本文件,包含5000多个英文名字。利用这个文件,首先将文件中的名字按照字母排序,然后计算每个名字的字母值,最后将字母值与这个名字在名字列表中的位置相乘,得到这个名字的得分。

例如将名字列表按照字母排序后, COLIN这个名字是列表中的第938个,它的字母值是3 + 15 + 12 + 9 + 14 = 53。所以COLIN这个名字的得分就是938 × 53 = 49714.

文件中所有名字的得分总和是多少?

#include <stdio.h> 
#include <ctype.h>
#include <stdlib.h>

struct str{
	char name[12];
};

char a[12];

int namevalue(char *s)
{
	int i, sum;
	i = sum = 0;
	while(s[i]) {
		sum += (s[i] - 'A' + 1);
		i++;
	}
	return sum;
}

int cmp(const void *a, const void *b)
{
	return strcmp((*(struct str*)a).name, (*(struct str*)b).name);
}

void solve(void)
{
	FILE *fp;
	int i, j, k;
	char *s, c;
	long long sum = 0;

	struct str namestring[5163];

	fp = fopen("names.txt", "r");
	fseek(fp, 0, SEEK_END);
	int file_size;
	file_size = ftell(fp);
	fseek(fp, 0, SEEK_SET);
	s = (char*)malloc(file_size * sizeof(char));
	fread(s, sizeof(char), file_size, fp);

	i = j = k = 0;
	while(i <= file_size) {
		c = s[i++];
		if(!isalpha(c)) {
			if(c == ',') {
				j = 0;
				strcpy(namestring[k++].name, a);
				memset(a,'\0',12 * sizeof(char));
			}
		} else {
			a[j++] = c;
		}
	}
	strcpy(namestring[k].name, a);
	memset(a,'\0',12 * sizeof(char));

	qsort(namestring, 5163, sizeof(namestring[0]),cmp);

	for(i = 0; i <= 5162; i++) {
		sum += (namevalue(namestring[i].name) * (i + 1));
	}
	printf("%lld\n",sum);
}

int main(void)
{
	solve();	
	return 0;
}

 

Answer:
871198282

 Completed on Mon, 18 Nov 2013, 15:03

 

分享到:
评论

相关推荐

    scores.csv.zip

    标题中的"scores.csv.zip"是一个压缩文件,其中包含一个名为"scores.csv"的CSV(逗号分隔值)文件。这种格式通常用于存储表格数据,便于数据分析和处理。描述指出,这个数据集与教育领域相关,特别是针对学生的成绩...

    python机器学习fandago_scores.csv数据集

    "fandango_scores.csv"是一个广泛使用的数据集,特别适用于初学者和专业人士进行数据分析和预测模型的构建。这个数据集源自电影评分平台Fandango,包含了观众对电影的评分信息,对于理解用户行为、预测电影受欢迎...

    Image Segmentation Quality Scores_图像处理_图像分割_图像分割通信_

    "Image Segmentation Quality Scores" 是一个专题,关注的是评估图像分割结果的质量。在进行图像分割时,我们通常需要一种量化的方法来衡量分割结果的好坏。这包括了对分割边界准确性、连通性、物体识别率等多方面的...

    scrabble_scores_js

    "scrabble_scores_js"项目利用了jQuery库,这是一个强大的JavaScript库,简化了DOM操作、事件处理和Ajax交互。在这个项目中,jQuery版本为1.11.2,它提供了简洁的API,使得开发者能高效地编写代码。例如,使用jQuery...

    scores_test.py

    scores_test.py

    365Scores_v12.9.4高级版.rar

    《365Scores_v12.9.4高级版》是一款专为体育爱好者设计的安卓应用,提供了全面、实时的体育赛事资讯和直播服务。在这款高级版本中,用户可以享受更加丰富和个性化的功能,进一步提升观赛体验。下面我们将深入探讨这...

    两个蛋的问题(two eggs)

    ### 两个蛋的问题详解 #### 一、问题背景与描述 在IT行业的算法与问题解决领域,“两个蛋的问题”是一个非常经典且具有挑战性的问题。该问题曾被Google用于面试,国内的一些大型互联网公司也曾采用此题来评估应聘...

    all_scores-数据集

    《all_scores-数据集》是针对某个特定领域或主题收集并整理的一组数据集合,通常用于分析、研究或预测。在这个案例中,我们拥有的是一个名为"all_scores.csv"的CSV文件,它代表了结构化的表格数据,其中包含了列名和...

    数据库课程设计_students_scores_database_design.zip

    数据库课程设计_students_scores_database_design

    unity游戏得分离线排行榜系统源码Offline Leaderboards High Scores

    unity游戏得分离线排行榜系统源码Offline Leaderboards High Scores 插件资源 直接用 Requires Unity 5.3.5 or higher. Add a local (ie. not online) high score board to your game easily with this pack. It ...

    1122-3437-score_Semester_Scores_Final_LINE.xls

    1122-3437-score_Semester_Scores_Final_LINE.xls

    盒子分数「Box Scores」「Basketball Box Scores」-crx插件

    这个扩展显示你每天的盒子分数。 这是怎么回事? 这是一项扩展,使篮球爱好者可以轻松享受在线搜索比赛雕像的过程。 一次单击即可给您详细的盒子分数! 有了此扩展程序的帮助,就可以简化它。 仅向用户显示必需的...

    student_scores.sql

    排名测试数据-排名查询语句,顺序查询,分组内查询; 排名测试数据-排名查询语句,顺序查询,分组内查询; 排名测试数据-排名查询语句,顺序查询,分组内查询;

    Uno Scores-开源

    Uno Scores 是一个开源项目,它提供了一款基于纸牌游戏的得分计算器,专注于Uno这款流行的桌面游戏。Uno是一款色彩丰富、规则简单的家庭娱乐卡牌游戏,玩家在游戏中通过匹配颜色或数字来出牌,最终目的是把手上的牌...

    Outlier Detection using Structural Scores in a High dimensional Space

    Outlier detection is very useful in many ... In this paper, we present a novel outlier detection method in terms of the meaningful structure scores. The scores are calculated by measuring the v

    XWA Scores-开源

    《XWA Scores——开源OCR技术在游戏得分记录中的应用》 在数字娱乐领域,游戏的体验不仅限于游戏本身,还包括玩家之间的互动和成就分享。XWA Scores是一款专为游戏《XWing Alliance》设计的开源OCR(光学字符识别)...

    板球比分「Cricket Scores」-crx插件

    只需点击一下即可获得最新的板球比分。 获得最新的板球比赛的测试比赛和一天的国际单击。 支持语言:English

    ACM.rar_SCORES_堆石子 编程

    在一个圆形操场的四周摆放着n 堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的2 堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。试设计一个算法,计算出将n堆石子合并成一堆的最小得分...

    Takes student grade scores from a database and plots them on

    标题中的“Takes student grade scores from a database and plots them on”指的是一个系统或程序,它能够从数据库中获取学生的成绩数据,并将这些数据在图表上进行可视化展示。这个过程涉及了数据库管理和数据可视...

    HighScores:从Couchbase存储和检索HighScores的示例

    它假定存在一个名为“ highscores”的存储桶,一个名为“ highscoredd”的设计文档以及一个名为“ highscoreview”的已发布生产视图。 当程序启动时,它将在0到100,000之间插入1,000个随机播放器的高分。 然后它将...

Global site tag (gtag.js) - Google Analytics