试题描述 |
来到了新学校,才相处不到一个月,jy就对oyjy一见钟情。于是向oyjy问QQ号。当然身为创(实)新(验)一班的同学,oyjy还是要考考jy。她给了纪勇一个加密后的QQ号,让纪勇解密,解密规则是这样的:首先将第一个数字删除,再将第二个数字放到这串数的末尾,再将第 3 个数删除并将第 4 个数放到这串数的末尾,再将第5个数删除,........,以此类推,将最后一个数字也删除。按照刚才删除的顺序,把这些删除的数字连在一起,最后的 7 位就是 oyjy 的 QQ 号。当然解密后的数字串肯定不止 7 位,不到 100 位。纪勇一时懵逼了,为了纪勇的幸(忄生)福,快帮帮他呀! |
输入 |
一行,包含符合题目描述的一个数字串,表示加密后的 QQ 号码。 |
输出 |
一个七位的数字串,表示 YSM 的 QQ 号。 |
输入示例 |
631758924 |
输出示例 |
5947283 |
#include <iostream> #include <queue>//关于队列,在c++中,需要使用要加头文件“queue” #include <cstring>//一会要调用的strlen函数 using namespace std; int n,i,k;//n为一会输入的长度。 char ans[10010],a[10010];//ans为答案数组,a为输入数组 queue <char> Q;//设一个char型的队列 int main() { cin>>a;//输入 n=strlen(a);//获取a的长度,存到n中 for(i=0;i<n;i++) Q.push(a[i]);//把a中每个字符都存到队列Q中。 while(Q.size()>0)//while循环条件:看队列是否为空 { ans[k]=Q.front();//把队首,也就是要删除的,存到ans数组里 Q.pop();//把队首弹出,也就是删除。 Q.push(Q.front());//此时队首变为下一个数,也就是要放在队尾的,把它进入队列。 Q.pop();//队首已经在队尾了,可以弹出。 k++; } for(i=k-7;i<k;i++) cout<<ans[i];//输出答案后七位 }
|
时间: 2024-10-14 04:54:02