實驗九 類與物件(一) 程式片段程式設計題 5. 約瑟夫問題2020-12-12
【問題描述】
n 個人(編號從1~n)圍成一圈,從第 k 個人開始數數,數到 m 的人出圈,然後繼續從未出列的下一個人開始數數,數到 m 的人出圈,重複上述過程,直到圈中僅剩下一人。。
【輸入形式】
輸出為一個正整數,表示最後剩下的人的編號。
【樣例輸入】
100 1 5
【樣例輸出】
47
【答題提醒】本題為程式片段題,你需要將程式補充完整。題目為類與物件的應用,構造一個迴圈連結串列,你需要完全理解本程式的設計思想。
有點小問題,但不影響,我會回來修改的,HNU2020屆信科院通訊的普通小畢會和你一起努力的!!
下面展示一些 內聯程式碼片
。
#include <iostream>
using namespace std;
class person
{
private:
int no; /* 人的編號 */
person* next; /* 指向相鄰的下一個人 */
public:
person(int num)
{
no = num;
next = NULL;
}
void setNext(person* p)
{
next = p;
}
int getNo()
{
return no;
}
person* getNext()
{
return next;
}
};
class cycle
{
private:
person* start; /* 開始數數的位置 */
int out; /* 數到幾齣列 */
int inQueue; /* 隊伍中現有人數 */
public:
cycle(int num, int from, int whoOut)
{
inQueue = num, out = whoOut;
person* prv = NULL, * first = NULL;
for (int i = 1; i <= num; i++)
{
person* p = new person(i);
if (i == 1)
first = p;
if (i == from)
start = p;
if (i > 1)
prv->setNext(p);
prv = p;
}
prv->setNext(first);
}
int getInQueue()
{
return inQueue;
}
void cnt() /*根據題目要求數數,確定出列的人,將該人從圈中剔除 */
{
person* last;
for (int i = 0; i < out-1; i++)
{
last = start;
start = start->getNext();
}
last->setNext(start->getNext());
start = start->getNext();
inQueue--;
}
person *getStart()
{
return start;
}
~cycle()
{
delete start;
}
};
int main()
{
int n,k, m ; /*n 圈內人數 k 開始數數 m 可數出列 */
cin>>n>>k>>m;
cycle *p=new cycle(n,k,m);
while(p->getInQueue()>1)
p->cnt();
person *winer=p->getStart();
cout<<winer->getNo()<<endl;
delete p;
return 0;
}
相關文章
- 物件導向程式設計 約瑟夫問題簡要分析物件程式設計
- 約瑟夫問題pascal程式
- 約瑟夫生者死者遊戲問題遊戲
- js利用指標操作約瑟夫問題程式碼例項JS指標
- 約瑟夫(Josephus problem)環問題初探
- P1996 約瑟夫問題996
- 陣列解決約瑟夫環問題陣列
- 1234: 華科版C語言程式設計教程(第二版)習題6.11(約瑟夫問題)C語言程式設計
- 約瑟夫環問題——初步瞭解+陣列實現陣列
- 迴圈連結串列(約瑟夫問題)--python實現Python
- 資料結構實驗一:順序表的建立與操作實現、順序表實現約瑟夫環問題資料結構
- 面試題—Java遞迴實現約瑟夫環面試題Java遞迴
- 【圖解經典演算法題】如何用一行程式碼解決約瑟夫環問題圖解演算法行程
- javascript中使用迴圈連結串列實現約瑟夫環問題JavaScript
- 約瑟夫環(Josephus)問題--報數遊戲(連結串列)遊戲
- 實驗2 類和物件 基礎程式設計1物件程式設計
- 實驗2 類和物件_基礎程式設計1物件程式設計
- 實驗三 類和物件 基礎程式設計2物件程式設計
- 實驗三 類和物件_基礎程式設計2物件程式設計
- 實驗3 類和物件——基礎程式設計2物件程式設計
- 實驗3 類和物件 基礎程式設計2物件程式設計
- 實驗3 類和物件_基礎程式設計2物件程式設計
- C語言陣列實現約瑟夫環出圈問題 程式碼詳細註釋 簡單易懂C語言陣列
- 【JAVA程式設計】實驗三 函式與物件Java程式設計函式物件
- 連結串列面試題(八)---約瑟夫環面試題
- java環形連結串列約瑟夫環問題筆記Java筆記
- 約瑟夫環(vector類解決)
- Java實驗二:類程式設計實驗Java程式設計
- 洛谷題單指南-線性表-P1996 約瑟夫問題996
- 程式碼設計問題
- 牛客題霸NC132環形連結串列的約瑟夫問題Java題解Java
- 約瑟夫環(超好的程式碼存檔)--19--約瑟夫環--LeetCode面試題62(圓圈最後剩下的數字)LeetCode面試題
- 迴圈結構程式設計 實驗題目程式設計
- 實驗1:UML與物件導向程式設計原則物件程式設計
- 課時37:類與物件:物件導向程式設計物件程式設計
- 如何像程式設計師一樣思考 - 解決問題的經驗與教訓程式設計師
- Java程式設計__Chap3 面對物件__程式設計題Java程式設計物件
- 程式設計文化的問題程式設計