纸牌问题(队列)

2023-12-16 11:38:27

【问题描述】
桌面有一叠牌,从第一张(即位于顶面的牌)开始从上往下依次编号为1~n。当至少还剩两张牌时进行以下操作:把第一张牌扔掉,然后把新的第一张放到整贴牌的最后。输入n,输出每次扔掉的牌,以及最后剩下的牌(3≤n ≤ 100)。
【样例输入】7
【样例输出】1 3 5 7 4 2 6
【过程分析】
(1)创建用于存储队列的数组,为对头队尾初始化
(2)创建队列,为队列初始化
(3)把队列的第一个元素输出,把第二个元素放入队尾,直到把队列中的数字都输出为止

#include<iostream>
using namespace std;
int main()
{
 int arr[100],front=0,rear=0,num;
 cin>>num;
 rear=num;
 for(int i=0;i<num;i++){
 	arr[i]=i+1;
 }
 while(front<rear){
 	cout<<arr[front++]<<" ";
 	arr[rear++]=arr[front++];
 }
 return 0;
}

文章来源:https://blog.csdn.net/qq_38335295/article/details/135029443
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。