题目;一叠牌,从第一张牌(即位于顶面的牌)开始从上往下依次编号为1~n。当至少还剩三张牌时进行以下操作:把第一、二张牌扔掉,然后把当前状态下新的第一张放到整叠牌的最后。输入n,输出
#include<bits/stdc++.h>
using namespace std;
int a[10000];
int main()
{
int n,front=0,r=0;
cin>>n;//输入纸牌的个数
for(int i=0;i<n;i++)
{
a[i]=i+1;
}
r=n;
while(front!=r)//只要牌不为空就执行循环
{
cout<<a[front]<<" ";
front=(front+1)%(n+1);
a[r]=a[front];
front=(front+1)%(n+1);
r=(r+1)%(n+1);
}
return 0;
}
每次扔掉的牌,以及最后剩下的牌。