卡片游戏
题目描述 Description
桌面上有一叠牌,从第一张牌(即位于顶面的牌)开始从上往下依次编号为1~n.当至少还剩两张排时进行一下操作:把第一张牌扔掉,然后把新的第一张牌放到整叠牌的最后。输入n。输出每次扔掉的牌,以及最后剩下的牌。
输入描述 Input Description
输入n
输出描述 Output Description
输出每次扔掉的牌,以及最后剩下的牌
样例输入 Sample Input
7
样例输出 Sample Output
1 3 5 7 4 2 6
C++编程实现
#include<iostream>
#include<string>
#include<cmath>
using namespace std;
int main()
{
int n;
cin>>n;
int *a=new int[2*(n-1)];
for(int i=0;i<n;i++)
a[i]=i+1;
int p=0,q=1,t=n;
while(t-q>=2)
{
cout<<a[p]<<" ";
a[t++]=a[q];
p+=2;
q+=2;
}
if(t-q==1)cout<<a[t-2]<<" "<<a[t-1]<<endl;
delete []a;
return 0;
}