Google CodeJam习题:Alien Numbers
来源:互联网 发布:淘宝网服装 编辑:程序博客网 时间:2024/05/20 05:29
题目见:http://code.google.com/codejam/contest/32003/dashboard
思路:
简单的进制转换程序。首先转化成计算机里的数据,这样才能进行除法和取余,然后再转化为输出数据。
题解:
#include <iostream>#include <fstream>#include <string>#include <array>#include <algorithm>void translate ( const std::string& alien_number, const std::string& src, const std::string& tgt){ const char src_set = src.size(); const char tgt_set = tgt.size(); std::array<char, 256> src_mapping; for (char i = 0; i < src_set; ++i) src_mapping[src[i]] = i; long dec_value = 0; for (auto& ach : alien_number) dec_value *= src_set, dec_value += src_mapping[ach]; std::string output; do { output += tgt[dec_value % tgt_set]; dec_value /= tgt_set; } while (dec_value != 0); std::reverse (std::begin (output), std::end (output)); std::cout<<output<<std::endl;}int main (int argc, char* argv[]){ if (argc != 2) return 1; std::ifstream ifs; ifs.open(argv[1]); if (!ifs.is_open()) return 1; int num_aliens; ifs>>num_aliens; for (int i = 0; i < num_aliens; ++i) { std::string alien_number; std::string src_lang; std::string tar_lang; ifs>>alien_number>>src_lang>>tar_lang; std::cout<<"Case #"<<i+1<<": "; translate (alien_number, src_lang, tar_lang); } return 0;}
- Google CodeJam习题:Alien Numbers
- Google CodeJam习题:Always Turn Left
- Alien Numbers
- Alien Numbers
- Alien Numbers
- Alien Numbers
- Google Code Jam之Alien Numbers之我的解答
- codejam-Round1A-2008-Numbers
- Codejam之Tidy Numbers
- google codejam 汇总
- google codejam 2008 round1B
- google codejam 2008 round2
- Google CodeJam Qualification Round 2013
- Google CodeJam Round 2 2013
- Google CodeJam Qualification Round 2014
- Google Codejam 2009 Round 2
- 关于google codejam与baidu Astar
- Google CodeJam Round 1A 2013
- “黑马程序员”声明类Student,包含3个成员变量:name、age、score,创建5个对象装入TreeSet,按照成绩排序输出结果(考虑成绩相同的问题)
- IP地址分类
- The trip on Taiwan
- 字符串获取 bytes字符集 默认参数;
- “黑马成序员”正则表达式例题“将字符串按爹词且割,输出切割后的字符串和字符串的个数”
- Google CodeJam习题:Alien Numbers
- Linux单机部署LNMP环境
- gdb 修改函数返回值
- 腾讯的一道笔试题
- 每天一个linux命令:cp (copy)
- C语言使用小技巧
- pthread_cancel引起的死锁
- Bug 4483368 : SEVERAL RMAN CATALOG START WITH CREATES DUPLICATE CATALOG ENTRIES
- 共有76款 WIKI系统开源软件