約瑟夫環(vector類解決)
約瑟夫環(vector類解決)
【問題描述】
n 個人(編號從1~n)圍成一圈,從第 k 個人開始數數,數到 m 的人出圈,然後繼續從未出列的下一個人開始數數,數到 m 的人出圈,重複上述過程,直到圈中僅剩下一人。
【輸入形式】
輸入為一行三個正整數,n、k、m。
【輸出形式】
輸出為一個正整數,表示最後剩下的人的編號。,
【樣例輸入】
100 1 5
【樣例輸出】
47
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> a;
int n = 0, i = 0, k = 0, m = 0, p = 0;
cin >> n >> k >> m;
for (i = 0;i < n;i++) { //初始化
a.push_back(i + 1);
}
p = k - 2; //從第n個人開始數,第零位其實是n前面的那個人。陣列表示法,還要減一
while (a.size() > 1) { //迴圈剔除,直到只剩一個
for (i = 0;i < m;i++) {
if (p+1 >= a.size()) {//如果已經到了最後一個數
p = 0;
}
else {
p++;
}
}
a.erase(a.begin() + p);
p--;//重新指向前一個數,再迴圈m次
}
cout << a[0];
}
注意:
在此處初始化只能用a.push_back()函式。如果使用vector int a <10000> 再迴圈賦值輸入。a.size()將是10000。
此外,a.size()的儲存型別是short int。無法與-1比較。
相關文章
- 約瑟夫環遊戲遊戲
- 約瑟夫環問題
- 約瑟夫環(約瑟夫問題)求最後出列的人數
- 約瑟夫環(陣列實現)陣列
- 約瑟夫環(線性列表的思想)
- 約瑟夫問題
- 約瑟夫環問題 猴子選大王問題
- 用Python實現約瑟夫環演算法Python演算法
- java環形連結串列約瑟夫環問題筆記Java筆記
- 約瑟夫環(超好的程式碼存檔)--19--約瑟夫環--LeetCode面試題62(圓圈最後剩下的數字)LeetCode面試題
- zcmu1862——zbj的狼人殺(約瑟夫環問題)
- UVALive 3882--And Then There Was One+約瑟夫環問題變形
- 猴子選大王,約瑟夫問題
- 約瑟夫環(Josephus)問題--報數遊戲(連結串列)遊戲
- 【圖解經典演算法題】如何用一行程式碼解決約瑟夫環問題圖解演算法行程
- 約瑟夫生者死者遊戲問題遊戲
- 約瑟夫問題(丟手絹問題)
- 牛客題霸NC132環形連結串列的約瑟夫問題Java題解Java
- 迴圈連結串列(約瑟夫問題)--python實現Python
- 約瑟夫·寇德卡:成為一個吉普賽人
- C語言陣列實現約瑟夫環出圈問題 程式碼詳細註釋 簡單易懂C語言陣列
- 洛谷題單指南-線性表-P1996 約瑟夫問題996
- 實驗九 類與物件(一) 程式片段程式設計題 5. 約瑟夫問題2020-12-12物件程式設計
- 資料結構實驗一:順序表的建立與操作實現、順序表實現約瑟夫環問題資料結構
- 1234: 華科版C語言程式設計教程(第二版)習題6.11(約瑟夫問題)C語言程式設計
- 約瑟夫問題,輸入總人數,自動產生大於0小於n的隨機數隨機
- JS資料結構第三篇---雙向連結串列和迴圈連結串列之約瑟夫問題JS資料結構
- Vector3 類簡介
- c++ vector用法詳解C++
- 有贊環境解決方案
- 解決所有環境問題
- 農夫漁夫
- Support Vector Machines(SVM)如何根據虹膜分類評估性格類別?Mac
- 區塊鏈智慧合約解決方案區塊鏈
- ●類化意識●4解4連環(4)
- ●類化意識●4解4連環(5)
- ●類化意識●4解4連環(2)
- ●類化意識●4解4連環(3)