斯诺登的密码(洛谷-P1603)
题目描述
2013年X月X日,俄罗斯办理了斯诺登的护照,于是他混迹于一架开往委内瑞拉的飞机。但是,这件事情太不周密了,因为FBI的间谍早已获悉他的具体位置——但这不是最重要的——最重要的是如果要去委内瑞拉,那么就要经过古巴,而经过古巴的路在美国的掌控之中。丧心病狂的奥巴马迫降斯诺登的飞机,搜查时却发现,斯诺登杳无踪迹。但是,在据说是斯诺登的座位上,发现了一张纸条。纸条由纯英文构成:Obama is a two five zero.(以"."结束输出,只有6个单词+一个句号,句子开头如没有大写亦为合法)这句话虽然有点无厘头,但是警官陈珺骛发现这是一条极其重要的线索。他在斯诺登截获的一台笔记本中找到了一个C++程序,输入这条句子后立马给出了相对应的密码。陈珺鹜高兴得晕了过去,身为警官的你把字条和程序带上了飞机,准备飞往曼哈顿国际机场,但是在飞机上检查的时候发现——程序被粉碎了!飞机抵达华盛顿只剩5分钟,你必须在这5分钟内编写(杜撰)一个程序,免受上司的10000000000%10大板。破译密码的步骤如下:
(1)找出句子中所有用英文表示的数字(≤20),列举在下:
正规:one two three four five six seven eight nine ten eleven twelve thirteen fourteen fifteen sixteen seventeen eighteen nineteen twenty
非正规:a both another first second third
(2)将这些数字平方后%100,如00,05,11,19,86,99。
(3)把这些两位数按数位排成一行,组成一个新数,如果开头为0,就去0。
(4)找出所有排列方法中最小的一个数,即为密码。
输入输出格式
输入格式:
一个含有6个单词的句子。
输出格式:
一个整型变量(密码)。
输入输出样例
输入样例#1:
Black Obama is two five zero .
输出样例#1:
425
思路:
暴力打表,将所有用英文表示的数字平方后%100,存入数组,再进行升序排序,最后拼接输出即可。
源代码
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int main()
{int a[7];char word[20];long long ans=0;int k=0;int i;for(i=1;i<=6;i++)//6个单词,循环6次,暴力打表{scanf("%s",word);if(!strcmp(word,"one")||!strcmp(word,"a")||!strcmp(word,"another")||!strcmp(word,"first")){a[k]=1;k++;}else if(!strcmp(word,"two")||!strcmp(word,"both")||!strcmp(word,"second")){a[k]=4;k++;}else if(!strcmp(word,"three")||!strcmp(word,"third")){a[k]=9;k++;}else if(!strcmp(word,"four")){a[k]=16;k++;}else if(!strcmp(word,"five")){a[k]=25;k++;}else if(!strcmp(word,"six")){a[k]=36;k++;}else if(!strcmp(word,"seven")){a[k]=49;k++;}else if(!strcmp(word,"eight")){a[k]=64;k++;}else if(!strcmp(word,"nine")){a[k]=81;k++;}else if(!strcmp(word,"ten")){a[k]=0;k++;}else if(!strcmp(word,"eleven")){a[k]=21;k++;}else if(!strcmp(word,"twelve")){a[k]=44;k++;}else if(!strcmp(word,"thirteen")){a[k]=69;k++;}else if(!strcmp(word,"fourteen")){a[k]=96;k++;}else if(!strcmp(word,"fifteen")){a[k]=25;k++;}else if(!strcmp(word,"sixteen")){a[k]=56;k++;}else if(!strcmp(word,"seventeen")){a[k]=89;k++;}else if(!strcmp(word,"eighteen")){a[k]=24;k++;}else if(!strcmp(word,"ninteen")){a[k]=61;k++;}else if(!strcmp(word,"twenty")){a[k]=0;k++;}}scanf("%s",word);//读取句号sort(a,a+k);//升序排序for(i=0;i<k;i++)//组合数字ans=ans*100+a[i];printf("%lld",ans);//输出return 0;
}
斯诺登的密码(洛谷-P1603)相关推荐
- 洛谷P1603,P1597
第6章 字符串与文件操作 文章目录 第6章 字符串与文件操作 L P1603 斯诺登的密码 何为斯诺登事件? 理解题意 1.输入 2.运算排列 3.排列 因此,可得代码 代码 解释 N P1597 语 ...
- 洛谷P1603 斯诺登的密码 题解
蒟蒻来写题解了 说是水题其实也就是慢慢写能写出来的题吧,这道题有挺多坑的,要注意的点: 1.除了第一位数是个位数,直接输出,其他的个位数都要补0达到两位,例如:925和2509,这里只是单纯讨论输出问 ...
- 递归——外星密码(洛谷 P1928)
题目选自洛谷P1928 这道题很明显得用递归来做,我这里给出很清楚的解题思路,供大家参考! 1.初步思路 输入的这个字符串是被多重「压缩」的,所以一重一重地「解压缩」可能会非常非常麻烦(不过应该是可行 ...
- 洛谷 P1603 斯诺登的密码
原题链接: https://www.luogu.com.cn/problem/P1603https://www.luogu.com.cn/problem/P1603 题目描述 2013 年 X 月 X ...
- 洛谷——P1603 斯诺登的密码
题目背景 根据斯诺登事件出的一道水题 题目描述 题目描述 2013年X月X日,俄罗斯办理了斯诺登的护照,于是他混迹于一架开往委内瑞拉的飞机.但是,这件事情太不周密了,因为FBI的间谍早已获悉他的具体位 ...
- 洛谷P1603 斯诺登的密码
题目 2013年X月X日,俄罗斯办理了斯诺登的护照,于是他混迹于一架开往委内瑞拉的飞机.但是,这件事情太不周密了,因为FBI的间谍早已获悉他的具体位置--但这不是最重要的--最重要的是如果要去委内瑞拉 ...
- (水题)洛谷 - P1603 - 斯诺登的密码
https://www.luogu.org/problemnew/show/P1603 有毒,大小写不检测,句号也不管. #include<bits/stdc++.h> using nam ...
- 去重的Set解不出“斯诺登的密码”(洛谷P1603题题解,Java语言描述)
题目要求 P1603题目链接 分析 我们不如直接获取其平方数,这个就要基于HashMap啦,提前指定一下初始长度! 像10啊,20啊这种模完只剩00的,就不要了吧(他说是要最小的结果,开头0要去掉,那 ...
- 洛谷--橙色百道DP总结
最近刷完了洛谷橙色DP大约一百道,算是发现了一些套路,就部分题目做一些总结. 大概分为三类 第一类,九大背包及其衍生 第二类,经典DP模型,如LCS,LIS等 第三类,实际问题背景的普通,环形,树上D ...
最新文章
- 波形的转换与信号处理
- 100亿数据1万属性数据架构设计
- 程序员读研如何提高技术之我见
- 2021-03-09 Matlab RBF神经网络及其实例
- Debug pycharm: Error running *.py, cannot run program, No such file or pragram
- python学习并发编程
- jQuery倒计时(仿团购)
- 无意中发现的MSDN软件下载网站
- R语言绘制双坐标轴的方法初探
- 7000条短信接口!福利赠送!
- linux chmod详解
- matlab 调速系统试验,实验三-双闭环直流调速系统MATLAB仿真.doc
- 获取MP4视频关键帧图像,并保存为JPEG格式文件
- Class org.datanucleus.api.jdo.JDOPersistenceManagerFactory was not found
- JSP房地产门户管理系统myeclipse开发mysql数据库BS模式java编程网页结构详细设计
- 股票期货化数据文档大全覆盖国内6大易的历史数据和实时行情
- 编程中的逻辑实现,三种逻辑结构(顺序、循环、分支)、跳转、函数以及错误处理
- 研发工程师面试题整理
- python 计算牛顿差商,计算并化简牛顿插值多项式
- MockMockito使用手册