10935 - Throwing cards away I

    xiaoxiao2021-04-13  28

    紫书上习题5-3;会用vector这题就是大水题(其他方法没试),但我做好之后,格式就一直错,一直找不出,那就先放着吧;

    我的:

    #include <iostream> #include <algorithm> using namespace std; #include <vector> int main() { int n; vector<int>s; vector<int>a; while(cin>>n&&n<=50&&n!=0){ while(!s.empty()){ s.pop_back(); } while(!a.empty()){ a.pop_back(); } for(int i=1;i<=n;i++){ s.push_back(i); } while(s.size()>=2){ a.push_back(s.front()); s.erase(s.begin()); s.push_back(s.front()); s.erase(s.begin()); } cout<<"Discarded cards: "; while(!a.empty()){ if(a.size()!=1){ cout<<a.front()<<", "; a.erase(a.begin()); } else{ cout<<a.front()<<endl; a.erase(a.begin()); } } cout<<"Remaining card: "; while(!s.empty()){ cout<<s.front()<<endl; s.erase(s.begin()); } } } 别人的:

    #include"iostream" #include"algorithm" #include"vector" #include"map" #include"string" #include"deque" #include"queue" #include"stack" #include"cstdio" #include"cmath" using namespace std; int main() { //freopen("a.txt","r",stdin); int n; while(cin>>n&&n) { cout<<"Discarded cards:"; deque<int>a; int i; for(i=1;i<=n;i++) a.push_back (i); //23456 while(a.size()!=1) { int t=a.front(); if(a.size()>2) cout<<" "<<t<<","; else cout<<" "<<t; a.pop_front(); int tt=a.front(); a.push_back(tt); a.pop_front(); } cout<<endl; cout<<"Remaining card: "; cout<<a.front()<<endl; } return 0; } 基本上差不多,就是格式不一样,也找不出;

    转载请注明原文地址: https://ju.6miu.com/read-668744.html

    最新回复(0)