`

(Problem 42)Coded triangle numbers

阅读更多

The nth term of the sequence of triangle numbers is given by, tn = ½n(n+1); so the first ten triangle numbers are:

1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...

By converting each letter in a word to a number corresponding to its alphabetical position and adding these values we form a word value. For example, the word value for SKY is 19 + 11 + 25 = 55 = t10. If the word value is a triangle number then we shall call the word a triangle word.

Using words.txt (right click and 'Save Link/Target As...'), a 16K text file containing nearly two-thousand common English words, how many are triangle words?

 

原题大意:

三角形数序列中第 n 项的定义是: tn = ½n(n+1); 因此前十个三角形数是:

1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...

通过将一个单词中每个字母在字母表中的位置值加起来,我们可以将一个单词转换为一个数。例如,单词SKY的值为19 + 11 + 25 = 55 = t10。如果单词的值是一个三角形数,我们称这个单词为三角形单词。

words.txt (右键另存为)是一个16K的文本文件,包含将近两千个常用英语单词。在这个文件中,一共有多少个三角形词?

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

bool test(int n)
{
	int m;
	m = (int)sqrt(n * 2);
	if(m * (m + 1) == 2 * n) return true;
	else return false;
}

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

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

	fp = fopen("words.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;
				if(test(count(a)))  sum++;
				memset(a,'\0', 20 * sizeof(char));
			}
		} else {
			a[j++] = c;
		}
	}
	if(test(count(a)))  sum++;
	memset(a,'\0',20 * sizeof(char));

	printf("%d\n",sum);
}

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

 

Answer:
162

 

 

Completed on Tue, 19 Nov 2013, 03:34

 

 

分享到:
评论

相关推荐

    CodedUI test code for excel

    标题 "CodedUI test code for excel" 描述的是使用Microsoft的Coded UI测试工具来编写自动化测试代码,针对Excel应用程序进行测试的一种技术。Coded UI测试是Visual Studio中的一种功能,它允许开发者录制并自动生成...

    CodedUI for Image save/read

    在IT行业中,CodedUI是一种自动化测试工具,主要用于录制和编写UI测试脚本,它包含在Microsoft的Visual Studio Enterprise版本中。CodedUI允许开发者和测试工程师创建针对应用程序用户界面的自动化测试,覆盖广泛的...

    Coded_Aperture-master.zip

    《Coded Aperture技术详解与应用》 Coded Aperture,中文称为“编码孔径”,是一种在光学成像系统中广泛采用的技术,特别是在遥感、医学成像、天文观测等领域。该技术通过在光学系统的入口处设置具有特定编码结构的...

    Ascii Coded heX Utility

    As standard pc hex editors are not able to load ascii-coded-hex contents like intel hex or motorola s-records, I wrote a basic tool to handle ascii-coded-hex for my own. By the time it grew to ja-tool...

    Trellis Coded Quantization of Memoryless and Gauss-Markov Sources

    ### Trellis Coded Quantization (TCQ) for Memoryless and Gauss-Markov Sources #### 概述 本文档详细介绍了Trellis Coded Quantization(TCQ)的基本概念、原理及其在记忆无源(memoryless sources)和高斯...

    Binary Coded Structured Light Range Scanner for Shiny Objects

    1. 标题和描述中提到的“Binary Coded Structured Light Range Scanner for Shiny Objects”指的是采用二进制编码的结构光扫描技术,用于扫描具有强反光特性的物体,并且对物体的边界进行精确确定。这种扫描技术在三...

    Coded-UI.zip_Action!

    Coded UI,全称为Microsoft Visual Studio的Coded UI测试,是一种强大的自动化测试工具,主要用于确保软件的功能正确性和稳定性。在IT行业中,测试是软件开发生命周期中的关键环节,它确保产品在发布前的质量,减少...

    Real-coded-GAs.py

    python版实数编码的遗传算法。正确有效。对通常而言实数编码解决的是约束优化问题,整数编码求的是组合优化问题。选择合适的编码是解决遗传算法问题的基础工作。

    Adaptive, Turbo-coded OFDM

    ### Adaptive, Turbo-coded OFDM #### 概述 在当今高度发达的信息时代,无线通信技术如卫星通信、移动通信及无线互联网等正受到越来越多消费者的推动,他们追求的是无缝集成的家庭、汽车以及办公室间的通信网络。...

    LDPC coded Modulation

    LDPC编码调制技术是现代通信技术中的重要组成部分,属于信号与通信技术领域。LDPC,全称低密度奇偶校验码(Low-Density Parity-Check Codes),是一种线性纠错码,由Gallager于1962年首次提出。...

    cml(Coded Modulation Library)源代码

    **cml(Coded Modulation Library)源代码详解** cml,全称为Coded Modulation Library,是一个专门用于数字通信领域的开源库,主要用于实现各种编码调制技术。这个库主要面向的是Matlab环境,为研究人员和工程师...

    Samples for UiPath Coded Automations

    Samples for UiPath Coded Automations

    uncodedBER.rar_Reached_uncoded coded

    it gives the BER vs Snr curve.The un-coded system is simulated is by using randomly generated numbers and it s passed over the AWGN channel.the output of the matlab file clearly shows that the BER ...

    from theory to practice an overview of MIMO space-time coded systems.pdf

    标题:《从理论到实践:MIMO空时编码无线系统概览》 描述:这篇论文提供了关于MIMO(Multiple-Input Multiple-Output)空间时间编码技术的全面介绍,重点介绍了从理论研究到实际应用的MIMO空间时间编码无线系统的...

    Adaptive_Turbo_coded_OFDM

    Turbo code est le nom générique d'un code correcteur imaginé dans les années 1990, qui permet de s'approcher aussi près qu'on le souhaite de la

    LDPC-coded-OFDM-for-PLC.rar_LDPC coded system_LDPC impulsive_LDP

    LDPC coded OFDM system for power line communication in the presence of both AWGN and Impulsive noise..

    Coded-Spatial-Modulation-master_无线通信_空间调制

    在这个“Coded-Spatial-Modulation-master”项目中,我们看到的是一个使用MATLAB实现的空间调制系统的代码库,这对于理解SM的工作原理、分析其性能以及进行相关研究非常有帮助。 1. **空间调制基础**: - **基本...

    ModulationMap.rar_Coded-Modulation

    在通信系统中,调制编码(Coded Modulation)是一种重要的技术,它结合了数字编码和数字调制,以提高信号传输的可靠性和效率。"ModulationMap.rar_Coded-Modulation" 文件显然包含了与这一主题相关的代码或算法,...

    CodedUITest Sample

    【Coded UI Test Sample】是关于使用Microsoft的自动化测试框架——Coded UI Test的一个实例。Coded UI Test是一种强大的工具,允许开发人员和测试工程师创建自动化测试用例,特别是针对用户界面(UI)的交互。它...

Global site tag (gtag.js) - Google Analytics