#35410: c++解法(有程式)


wdps104347@apps.ntpc.edu.tw (吳宗翰)

學校 : 新北市立中山國中
編號 : 209254
來源 : [163.20.41.252]
最後登入時間 :
2023-06-28 16:38:03
e155. 10935 - Throwing cards away I -- UVa 10935 | From: [101.10.107.27] | 發表日期 : 2023-05-31 22:45

解法:

利用 queue ,先輸出 qu.front()//第一項

然後 pop() 掉//刪除第一項

再把 front() push() 進去//將第一項加入

最後再 pop() 即可//刪除第一項

程式:

#include <iostream>
#include <queue>

using namespace std;

int main()
{
int n;
queue<int> qu;

while ((cin >> n) && n != 0)
{
for (int i = 1; i <= n; ++i)
qu.push(i);

if (cards.size() == 1) // 當只有一張卡時直接印出即可
cout << "Discarded cards:" << endl
<< "Remaining card: " << qu.front() << endl;
else
{
cout << "Discarded cards: ";
while (qu.size() > 2) // 先輸出最上面的卡然後移出,再將第一張放到最後面再移出
{
cout << cards.front() << ", ";
qu.pop();
qu.push(cards.front());
qu.pop();
}
cout << qu.front(); // 輸出倒數第二張牌
qu.pop();
cout << endl << "Remaining card: " << qu.front() << endl;
}
qu.pop(); // 將 queue 清空
}
}

 
ZeroJudge Forum