Throwing cards away I 卡牌游戏 UVA 10935
解题思路:本题通过STL中的队列queue很容易就写出代码,唯一值得注意的是当输入为1时;
- #include
- #include
- using namespace std;
- queue
q; - int main(){
- int n;
- while(scanf(“%d”,&n)==1 && n){
- for(int i=1;i<=n;i++)
- q.push(i);
- int len=q.size();
- if(len==1)printf(“Discarded cards:\n”);
- else printf(“Discarded cards: “);
- while(len>=3){
- printf(“%d, “,q.front());
- q.pop();
- int temp=q.front();
- q.pop();
- q.push(temp);
- len=q.size();
- }
- if(len!=1)
- {
- printf(“%d\n”,q.front());
- q.pop();
- }
- printf(“Remaining card: %d\n”,q.front());
- q.pop();
- }
- return 0;
- }
还没有评论,来说两句吧...