Heim > Datenbank > MySQL-Tutorial > USACO 1.2.3 Name That Number

USACO 1.2.3 Name That Number

WBOY
Freigeben: 2016-06-07 15:01:01
Original
960 Leute haben es durchsucht

USACO 1.2.3 Name ThatNumber 题意:有好多头奶牛,它们每一头都有一个编号,每个数字分别对应三个字母,每个数字从它对应的字母中挑一个出来组成一个单词,给定一个词典,看如果这个单词在词典中是存在的,就输出,如果存在多个这样的单词,按照字母表的顺

USACO  1.2.3 Name ThatNumber

     题意:有好多头奶牛,它们每一头都有一个编号,每个数字分别对应三个字母,每个数字从它对应的字母中挑一个出来组成一个单词,给定一个词典,看如果这个单词在词典中是存在的,就输出,如果存在多个这样的单词,按照字母表的顺序输出。

     打印出所有可能的单词然后去比较,觉得效率有问题。出题者的用意明显是让我们反过来做,将词典里的单词转换成数字然后和给定的数字比较,因为给的词典里的单词都是按照字母表顺序排列的,而且数字和字母之间存在明显关系。

     细节+代码:

 

    

/*  
ID: 15257142  
LANG: C  
TASK: namenum 
*/  
#include<stdio.h>
#include<string.h>
int main(){
	freopen("namenum.in", "r", stdin); //在我看来输入输出是这道题目全部价值所在。
	char num[20],a[30],b[20];
	int m,ma,i,f,k;
	scanf("%s",num);
	m = strlen(num)-1;
	freopen("dict.txt", "r", stdin); //!
	freopen("namenum.out", "w", stdout); //!
	f = 0;
	while(scanf("%s",a)!=EOF){
		ma = strlen(a)-1;
		if(m!=ma)
			continue;
		for(i = 0;i'Q') //是没有'Q'的,那么……
				k = (a[i]-'B')/3;
			else
				k = (a[i]-'A')/3;
			b[i] = k+'2';
		}
		b[ma+1] = '\0';
		if(strcmp(b,num)==0){
			printf("%s\n",a);
			f = 1;
		}
	}
	if(f==0)
		printf("NONE\n");
	fclose(stdin);
	fclose(stdout);
	return 0;
}</string.h></stdio.h>
Nach dem Login kopieren


 

 


 

 

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage