解密QQ号
一、原题
【 题目描述 】
YSM 在年级里人缘特别好,大家都找他要 QQ 号,数学特别好的它有时也小卖弄一下,他把 QQ 号加密后告诉同学们,所以同学们要得到他的 QQ 号还得先解密。解密规则是这样的:首先将第一个数字删除,再将第二个数字放到这串数的末尾,再将第 3 个数删除并将第 4 个数放到这串数的末尾,再将第5个数删除,…,以此类推,将最后一个数字也删除。按照刚才删除的顺序,把这些删除的数字连在一起,最后的 7 位就是 YSM 的 QQ 号。当然解密后的数字串肯定不止 7 位,不到 100 位。
【 输入 】
一行,包含符合题目描述的一个数字串,表示加密后的 QQ 号码。
【 输出 】
一个七位的数字串,表示 YSM 的 QQ 号。
【 样例输入 】
631758924
【 样例输出 】
5947283
二、分析
这道题一共有两种方法,一个是自定义队列,另外一个是用STL模板中的队列"< queue >"来做。以下是详细解析
方法 (一) : 自定义队列
|| 这道题目就是一道简单的队列问题,我们要先定义两个指针,“front”与“rear”(front前指针,rear后指针,删除第一个就是front++),然后就用while循环一直执行题目中的操作,直到为空,把删除的存在另一个数组里,最后输出数组中的后四个即可。
方法(二):STL模板
|| 这个方法就用到了队列指令了,感兴趣的小伙伴可以去网上自主查询,这是我提供的一个比较好的网站,以及我从网上查到的指令
https://blog.csdn.net/zichen_ziqi/article/details/80819939
queue<int> q; //定义队列,<int>指的是队列类型
q.empty() //如果队列为空返回true,否则返回false
q.size() // 返回队列中元素的个数
q.pop() // 删除队列首元素但不返回其值