这次一直没过的是,C++的char转int,
要用这一句
int rightNum = (int)num[i] - 48;
一定要减去48才行。。调了一会儿才发现
下面是源码
/* ID: bbsunch2 PROG: namenum LANG: C++ */ #include <iostream> #include <fstream> #include <string> #include <vector> #include <stdlib.h> using namespace std; char number_letter[10][3] = { {},// 0 {},// 1 {'A','B','C'}, // 2 {'D','E','F'}, // 3 {'G','H','I'}, // 4 {'J','K','L'}, // 5 {'M','N','O'}, // 6 {'P','R','S'}, // 7 {'T','U','V'}, // 8 {'W','X','Y'} // 9 }; int main() { ofstream fout ("namenum.out"); ifstream fin ("namenum.in"); ifstream fdict ("dict.txt"); string word; vector <string> dicts; while(fdict.good() && !fdict.eof()) { getline(fdict,word,'\n'); dicts.push_back(word); } string num; fin >> num; int numSize = num.size(); for(vector<string>::iterator iter=dicts.begin();iter!=dicts.end();) { word = *iter; int wordSize = word.size(); if(wordSize != numSize) { dicts.erase(iter); continue; } ++iter; } for(int i = 0; i < numSize; i++) { int rightNum = (int)num[i] - 48; for(vector<string>::iterator iter=dicts.begin();iter!=dicts.end();) { word = *iter; char rightLetter = word[i]; bool key = false; for(int j = 0; j < 3; j++) { char letter = number_letter[rightNum][j]; if(letter == rightLetter) { key = true; break; } } if(key) { ++iter; }else { dicts.erase(iter); continue; } } } if(dicts.size() == 0) { fout << "NONE" << endl; }else { for(vector<string>::iterator iter=dicts.begin();iter!=dicts.end();++iter) { word = *iter; fout << word << endl; } } return 0; }
相关推荐
USACO答案,采用C++写的,题目是:name that number.
【Title】: USACO题目"Name That Number (namenum)"及代码解析 【Description】: 本题属于USACO竞赛中的一道题目,要求编写一个程序,将母牛的烙印编号转换为可能的牛名。这些名字是根据特定的数字到字母的映射规则...
5 [1.2] 命名那个数字 Name That Number 6 [1.2] 挤牛奶Milking Cows 7 [1.2] 方块转换 Transformations 8 [1.2] 回文平方数 Palindromic Squares 9 [1.2] 双重回文数 Dual Palindromes 10 [1.3] 混合牛奶 Mixing ...
USACO,全称为United States阿Olympiad in Informatics,是美国计算机奥林匹克竞赛,旨在为高中生提供一个学习和展示编程技能的平台。这个比赛涵盖了算法、数据结构以及问题解决等多个方面,对于想要深入理解计算机...
1.2.3 "Name That Number" 可能是关于数字表示和逻辑推理的问题。 1.2.4 "Palindromic Squares" 和 "Dual Palindromes" 强调了对回文数的理解和生成算法。 1.3.1 "Mixing Milk" 和 "Barn Repair" 可能涉及到更复杂的...
### USACO 2010-2011 季度竞赛概览与关键信息 #### 一、概述 美国计算机奥林匹克(USACO)是面向全球中学生的计算机科学竞赛,旨在发掘并培养计算机科学领域的年轻人才。USACO 2010-2011 季度竞赛于 2010 年 11 月...
《USACO 合集:全面解析与学习指南》 USACO,全称为USA Computing Olympiad,是一项针对中学生举办的在线编程竞赛,旨在提升参赛者的算法设计和问题解决能力。这个合集提供了丰富的资源,包括英文原题、中文译题、...
此外,“Transformations”、“Name That Number”等题目进一步加深了对模拟算法的理解。 ### 四、Chapter3:Techniques more subtle 第三章深入探讨了更精细的技术,如“Mixing Milk”题目虽然可能通过模拟解决,...
某些USACO题目的答案,很详细,代码清晰结构良好,算法高效易于调试
- “NameThatNumber”和“CheckerChallenge”等题目可能与字符串处理有关。字符串处理是编程中常见的问题,需要参赛者对字符串的各种操作有较深的了解。 6. 数学计算(Math Computation): - “PrimeCryptarithm”...
USACO,全称United States Computer Olympiad,是一项面向全球中学生的计算机编程竞赛,旨在提升参赛者在算法设计、问题解决以及计算机科学基础方面的技能。这个压缩包文件提供了丰富的资源,帮助参赛者或学习者更好...
USACO,全称为United States Computer Olympiad,是一项面向全球中学生的计算机编程竞赛,旨在提升参赛者的算法设计、问题解决和编程能力。该比赛每年举行,分为青铜、白银、黄金和铂金四个级别,难度逐渐递增。...
【标题】"usaco traning全部数据" 涉及的是一个编程竞赛训练平台——USACO(USA Computing Olympiad)的数据集。USACO是一个专门为美国中学生设计的在线编程竞赛,旨在提升参赛者的算法设计和编程能力,特别是在解决...
### USACO心得及总结 #### 第一部分 动态规划 **USACO**(美国计算机奥林匹克竞赛)作为一项国际知名的编程竞赛,不仅考验参赛者的编程能力,还对其算法理解和应用有着极高的要求。其中,动态规划(Dynamic ...
《USACO入门指南——第一章解析》 USACO,全称USA Computing Olympiad,是美国计算机奥林匹克竞赛,旨在培养中学生在算法和编程方面的技能。对于初学者来说,USACO提供了很好的学习路径和挑战。本文将针对USACO的第...
USACO(美国计算机奥林匹克竞赛)是面向全球中学生的一项编程竞赛,主要涉及算法和问题解决能力。这个压缩包文件“usaco历年测试数据”包含了该赛事历年的测试题目和样例输入输出数据,这对于参赛者准备比赛或者提升...
标签中包含的关键词:“usaco”、“acm”、“pku”、“测试数据”和“源码”,进一步细化了主题。USACO和ACM都是编程竞赛的名称,而“pku”是比赛的组织者之一。"测试数据"意味着这个压缩包包含了用于检验编程解决...
【标题】"USACO训练代码" USACO(USA Computing Olympiad)是美国计算机奥林匹克竞赛,旨在提高高中生的算法编程能力。这个压缩包“usaco_training code”包含的是一系列用于USACO培训的代码,由作者亲自编写。通过...
USACO,全称为United States Computer Olympiad,是一项面向中学生的国际性计算机编程竞赛,旨在提升参赛者的算法设计和编程能力。USACO比赛通常使用C++语言进行,因此"USACO 1.1 c++源程序"指的是USACO入门阶段1.1...
USACO,全称为United States Computer Olympiad,是一项面向中学生的国际性计算机编程竞赛,旨在提升参赛者在算法设计、问题解决以及编程方面的技能。USACO比赛通常包含多个编程题目,参赛者需要使用C++、Java等语言...