C++vector實現約瑟夫環
#include <iostream>
#include <vector>
#include <iomanip>
using namespace std;
int main()
{
int n, m;
cin >> n >> m;
vector<int> veci;
for (int i = 1; i <= n;i++)
{
veci.push_back(i);
}
int cnt = 1;
vector<int>::iterator it = veci.begin();
while (!veci.empty())
{
if (cnt == m)
{
cout <<setw(4) << *it << " ";
if (it != veci.end() - 1)
{
it = veci.erase(it);
}
else
{
veci.erase(it);
it = veci.begin();
}
cnt = 0;
}
else
{
it++;
}
cnt++;
if (it==veci.end())
{
it = veci.begin();
}
}
return 0;
}
相關推薦
C++vector實現約瑟夫環
//向量求解約瑟夫環 #include <iostream> #include <vector> #include <iomanip> using namespace std; int main() {int n, m;cin >&
c語言實現約瑟夫環-每隔幾個刪除一個,求剩下的
c語言連結串列實現約瑟夫環的程式碼,每隔任意元素刪除一個,逐步輸出各個刪除元素 #include<stdio.h> #include<malloc.h> #include<string.h> #define N 10 struct lno
用C++實現約瑟夫環的問題
content 人在 -h tel padding next family bsp sun 約瑟夫問題是個有名的問題:N個人圍成一圈。從第一個開始報數,第M個將被殺掉,最後剩下一個,其余人都將被殺掉。比如N=6,M=5。被殺掉的人的序號為5,4,6。2。3。最後剩下1
C語言用陣列1. 簡單約瑟夫環問題: N個人,編號從1~N圍成一圈,輸入一個數T,從1號開始報數,報到T的人出圈;下一人又從1開始報數,下一個報到T的人出圈,輸出出圈順序。 考慮問實現約瑟夫環問題
1. 簡單約瑟夫環問題: N個人,編號從1~N圍成一圈,輸入一個數T,從1號開始報數,報到T的人出圈;下一人又從1開始報數,下一個報到T的人出圈,輸出出圈順序。 考慮問題: 報到T的人出圈,怎麼表示出圈?要麼刪除對應的標號,其他的標號前移(如果是陣列結構,要依次移動
C語言,陣列實現約瑟夫環問題(兩種方法)
約瑟夫環問題:約瑟夫環是一個數學的應用問題:已知n個人(以編號1,2,3...n分別表示)圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列;他的下一個人又從1開始報數,數到m的那個人又出列;依此規律重複下去,直到圓桌周圍的人全部出列。 第一種方法:要求將每次
C/C++,資料結構單鏈表實現約瑟夫環
約瑟夫環——圍成一圈,定義一個數值K,從任意位置開始計數,每走K步刪除當前位置結點,直到剩下最後一個結點,求最後一個結點//單鏈表結構以及Find函式參見 2016-1-2 13:56 發表部落格SLi
通過例子進階學習C++(七)CMake專案通過模板庫實現約瑟夫環
本文是通過例子學習C++的第七篇,通過這個例子可以快速入門c++相關的語法。 1.問題描述 回顧一下約瑟夫環問題:n 個人圍坐在一個圓桌周圍,現在從第 s 個人開始報數,數到第 m 個人,讓他出局;然後從出局的下一個人重新開始報數,數到第 m 個人,再讓他出局......,如此反覆直到所有人全部出局為止。 上
【c++提問】約瑟夫環問題
ocl wmi lsa rul 2dx hdp and kml eee 家煩堵zx1ul秩枷言http://weibo.com/u/6221316968部坎夢8t970帕糖良http://weibo.com/u/6378557985兜杉稚k9v00劑重凸http://wei
實現約瑟夫環
賦值 答案 就是 必須 創意 class 復習 標記 sys 最近在看關於約瑟夫環的一些解決思路,發現了一種很有創意的解法,記錄下,用來復習。 //用於判斷某個數是否已經被剔除 boolean[] isChoosed = new boolean[n];
用陣列模擬實現約瑟夫環
約瑟夫問題:n個人圍成一圈,從第一個人開始報數,數到m的人出圈;再由下一個人開始報數,數到m的人出圈;…輸出依次出圈的人的編號。n,m由鍵盤輸入。 要求: 用陣列模擬實現 。 #include <iostream> #include <cstring> using
(演算法)C語言模擬約瑟夫環問題
約瑟夫環問題描述 m個人圍坐一圈,每人持有一個數字,從第一個人開始從1報數,報到n(第一輪n任意給定)的人出圈,將n改為這個出圈的人所持有的數字,下個人開始從1報數,繼續報到n的人出列;依次類推直到所有
Problem E: 用連結串列實現約瑟夫環
Description 你聽說過約瑟夫問題嗎?問題大致如下:首先n個人圍成一個圈,標記為1到n號。接著,從1號開始報數(從1開始),然後2號報數,然後3號。。。當有人報到到m時,這個人就要踢出比賽,然後從被踢出的人的下一個人開始,重新報數(從1開始)。這樣經過n-1次後,就只剩下了一個人,問最後剩下的
C語言解決約瑟夫環問題 詳細註釋
約瑟夫環演算法是: n 個人圍成一圈,每個人都有一個互不相同的密碼,該密碼是一個整數值,選擇一個人作為起點,然後順時針從 1 到 k(k為起點人手中的密碼值)數數。數到 k 的人退出圈子,然後從下一個人開始繼續從 1 到 j (j為剛退出圈子的人的密碼)數數,數到 j 的人退
迴圈連結串列 實現 約瑟夫環
【約瑟夫環問題】 已知 n 個人(n>=1)圍坐一圓桌周圍,從 1 開始順序編號,從序號為 1 的人開始報數,順時針數到 m 的那個人出列。下一個人又從 1 開始報數,數到m 的那個人又出列
單鏈表實現約瑟夫環
大家對約瑟夫環是比較陌生的,但是對於大多數人來說,丟手絹卻一點都不陌生,其實約瑟夫環和丟手絹差不多。 約瑟夫環 約瑟夫環(約瑟夫問題)是一個數學的應用問題:已知n個人(以編號1,2,3…n分別表示)圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出
vector實現約瑟夫
/* 1. 讀入優化 的 初識、 約瑟夫實現 vector模擬實現 過程: 先將每個元素放入 容器中 push_back(); for遍歷將 n-1 個元素 在容器中刪除
Java實現約瑟夫環
問題描述: 約瑟夫環問題是一個數學的應用問題:已知n個人(以編號1,2,3...n分別表示)圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列;他的下一個人又從1開始報數,數到m的那個人又出列;依此規律重複下去,直到只剩1人。 (1)定義一個Person類,
使用環形連結串列實現約瑟夫環
連結串列實現Josephus約瑟夫環問題如下,輸出每輪殺掉的人的編號,並且輸出最後剩下的一名幸運者。 標頭檔案如下 #ifndef JOSEPHLIST_H #define JOSEPHLIST_H #include <stdio.h> typedef st
Java 使用連結串列實現約瑟夫環
約瑟夫環是一個數學的應用問題:已知n個人(以編號1,2,3...n分別表示)圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列;他的下一個人又從1開始報數,數到m的那個人又出列;依此規律重複下去,直到圓桌周圍的人全部出列。求出出隊序列。 採用連結串列實現,結點資
簡單陣列實現約瑟夫環演算法
問題描述:已知n個人(以編號1,2,3…n分別表示)圍坐在一張圓桌周圍。從第一個人開始報數,數到m的那個人出桌;他的下一個人又從1開始報數,數到m的那個人又出桌;依此規律重複下去,直到圓桌周圍的人全部出桌。設計演算法求當給定任意n和m後,n個人的出桌次序。 演