1704 卡片游戏
题目描述 Description
桌面上有一叠牌,从第一张牌(即位于顶面的牌)开始从上往下依次编号为1~n.当至少还剩两张排时进行一下操作:把第一张牌扔掉,然后把新的第一张牌放到整叠牌的最后。输入n。输出每次扔掉的牌,以及最后剩下的牌。。
输入描述 Input Description
输入n
输出描述 Output Description
输出每次扔掉的牌,以及最后剩下的牌
样例输入 Sample Input
7
样例输出 Sample Output
1 3 5 7 4 2 6
数据范围及提示 Data Size & Hint
图论拜拜,直接模拟
1 #include<cstdio> 2 #include<queue> 3 using namespace std; 4 queue<int>q;int n; 5 int main(){ 6 scanf("%d",&n); 7 for(int i=1;i<=n;i++) q.push(i); 8 while(!q.empty()){ 9 printf("%d ",q.front()); 10 q.pop(); 11 int i=q.front(); 12 q.pop(); 13 if(!q.empty()) q.push(i); 14 else printf("%d ",i); 15 } 16 return 0; 17 }