题目背景
根据斯诺登事件出的一道水题
题目描述
题目描述
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)找出所有排列方法中最小的一个数,即为密码。
// 数据已经修正 By absi2011 如果还有问题请联系我
输入格式
一个含有6个单词的句子。
输出格式
一个整型变量(密码)。如果没有符合要求的数字出现,则输出0。
输入输出样例
输入 #1
复制
Black Obama is two five zero .
输出 #1
复制
425

下面是c语言的代码,只有排序的时候偷了一下懒,用来c++的排序函数。 (发现别人在做的时候,对于字符串换成数字,会一一列举或重新创建一个数组,但是不完全必要,因为从0到20,数组的序号也是从0到20,利用一个变量即可) 附上代码:

#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
using namespace std;
char a[30][10]={"zero","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen","twenty"};
int main()
{int i,j,flag,k=0,s;char b[7][8];//输入int c[7];//转成数字存储char d[15]={'\0'},e[3];//d用来输出,e用来使一个二位数转换成字符串,再将其接到d尾部for(i=0;i<6;i++)scanf("%s",&b[i]);for(i=0;i<6;i++){flag=0;if(strcmp(b[i],"a")==0) {s=1;flag=1;}else if(strcmp(b[i],"first")==0) {s=1;flag=1;}else if(strcmp(b[i],"both")==0) {s=2;flag=1;}else if(strcmp(b[i],"second")==0) {s=2;flag=1;}else if(strcmp(b[i],"another")==0) {s=3;flag=1;}else if(strcmp(b[i],"third")==0) {s=3;flag=1;}if(flag==0)for(j=0;a[j][0]!='\0';j++){if(strcmp(a[j],b[i])==0) {s=j;flag=1;break;}}if(flag==1){s=s*s;s%=100;c[k++]=s;}}sort(c,c+k);for(i=0;i<k;i++){if(c[i]<10) {e[0]='0';e[1]=(char)(c[i]+48);}else {e[0]=(char)(c[i]/10+48);e[1]=(char)(c[i]%10+48);}e[2]='\0';strcat(d,e);}//printf("%s\n",d);j=0;if(d[0]=='\0') printf("0");else{while(d[j]=='0') j++;while(d[j]!='\0') {printf("%c",d[j]);j++;}}return 0;
}

洛谷题解 P1603 【斯诺登的密码】(C语言/c++)相关推荐

  1. 洛谷P1603 斯诺登的密码 题解

    蒟蒻来写题解了 说是水题其实也就是慢慢写能写出来的题吧,这道题有挺多坑的,要注意的点: 1.除了第一位数是个位数,直接输出,其他的个位数都要补0达到两位,例如:925和2509,这里只是单纯讨论输出问 ...

  2. 刷题随记 洛谷P1914 小书童——凯撒密码 char爆了!!

    洛谷P1914 小书童--凯撒密码. 第一次错误代码 #include<bits/stdc++.h> using namespace std; int n; char a[100]; in ...

  3. P1603斯诺登的密码

    P1603斯诺登的密码传送门 本题因为只需要输入六个单词所以变得简单 ** 思路 ** 1.用string 定义二维数组存储1-20的字符串 在特殊判断非常规数 并且存储到一个Int数组内(方+%10 ...

  4. 洛谷-题解 P2672 【推销员】

    独门思路!链表加优先队列! 这题一望,贪心是跑不掉了,但是我贪心并不好,所以想到了一个复杂一些但思路更保稳的做法 思路: 1 因为是离线操作,所以我们可以倒着求,先求x=n的情况,因为那样直接就知道了 ...

  5. 洛谷题解——P2814 家谱

    题目相关 题目链接 洛谷,https://www.luogu.com.cn/problem/P2814. MYOJ,http://47.110.135.197/problem.php?id=5344. ...

  6. 【洛谷题解】P2433 【深基1-2】小学数学 N 合一

    目录 [深基1-2]小学数学 N 合一 题解 题目描述 输入格式 输出格式 样例 #1 样例输入 #1 样例输出 #1 题目解析 问题 1~5 问题 6~10 问题 10~14 发牢骚 完整代码 谢谢 ...

  7. 洛谷题解——P1621 集合

    题目相关 题目链接 洛谷,https://www.luogu.com.cn/problem/P1621. MYOJ,http://47.110.135.197/problem.php?id=5342. ...

  8. 洛谷题解——P1873:砍树

    视频讲解可以直接点击这个 B 站链接,https://www.bilibili.com/video/BV1jk4y1k7hq/. 题目相关 题目链接 洛谷,https://www.luogu.com. ...

  9. 洛谷题解——P1024:一元三次方程求解

    视频讲解可以直接点击这个 B 站链接,https://www.bilibili.com/video/BV1qT4y13717/. 题目相关 题目链接 洛谷,https://www.luogu.com. ...

最新文章

  1. 机械臂底层通信协议说明
  2. 使用 graphviz 形象化有向图
  3. 通过微软虚拟wifi接入点共享网络连接的方法以及一个问题的解决方案
  4. 1005打印任务取消不了 hp_惠普HP M1136 MFP多功能打印机 一年半使用感受(学生打印机)...
  5. java用cookie最新浏览商品_jQuery.cookie.js实现记录最近浏览过的商品功能示例
  6. 基于ajax请求异常捕获
  7. 在Windows 10 增加和使用英语语音包
  8. Eclipse及其常用插件的下载地址
  9. Xshell 和 Xftp 免费下载
  10. Mysql学习日记:L13-distinct关键字
  11. RabbitMQ报错 o.s.a.r.c.CachingConnectionFactory : Channel shutdown: channel error; protocol meth
  12. iPhone投屏家中设备有哪些方法 iPhone投屏失败是怎么回事如何解决
  13. Day3 算法基本要素
  14. 小白的编程经验(二维数组迷宫游戏)
  15. node-v14.21版本的下载安装
  16. 微信小程序 async await解决异步问题
  17. adb remount失败的解决办法:
  18. 手机号 电话号码 邮箱 验证
  19. java addlast_java linkedlist addlast()不能指定元素追加在此列表的末尾
  20. redis windows版下载教程,及双系统百度网盘资源分享

热门文章

  1. 题解【洛谷】P6566 NOI Online #3 入门组 观星
  2. TP5后端,VUE前端请求聚合数据天气接口
  3. 资产收集神器-Goby工具
  4. 【安卓开发】调用系统原生的文件分享功能将文件分享给QQ或微信好友
  5. 兼容浏览器,hack的一些总结
  6. 【JMeter】计数器的使用
  7. Apache POI使用详解
  8. “上下求索”的人工智能市场了发生什么变化?
  9. 用友U8远程接入全攻略
  10. springMVC nodes