C語言陣列實現約瑟夫環出圈問題 程式碼詳細註釋 簡單易懂
如果沒理解,那手動模擬一遍,就懂了!
#include<stdlib.h>
#define N 10
void Joseph(int p[],int n,int s,int m);
void main(){
int p[N],s,m,i; //s為從第幾個開始報數,m為報到第幾個人出隊
printf("請輸入從第幾個人開始報數,第幾個人出隊:");
scanf("%d%d",&s,&m);
Joseph(p,N,s,m);
for(i=N-1;i>=0;i--){
printf(" %4d",p[i]);
}
}
void Joseph(int p[],int n,int s,int m){
int i,j,s1=s,temp;
for(i=1;i<=n;i++){ //n個人迴圈編上號
p[i-1]=i;
}
for(i=n;i>=2;i--){ //用i控制沒出去圈的總人數
s1=(s1+m-1)%i; //找出出圈報數人的位序
if(s1==0) //如果s1為0說明最後一個人報的數,它的序號是i
s1=i;
temp=p[s1-1]; //暫存出隊人對應陣列中的值
for(j=s1;j<i;j++){ //出隊人後的人依次往前一位
p[j-1]=p[j];
}
p[i-1]=temp; //出隊人的值放在陣列最後
}
}
相關文章
- 約瑟夫環(陣列實現)陣列
- 約瑟夫環問題
- 約瑟夫環(約瑟夫問題)求最後出列的人數
- 約瑟夫問題
- 約瑟夫環問題 猴子選大王問題
- 1234: 華科版C語言程式設計教程(第二版)習題6.11(約瑟夫問題)C語言程式設計
- 迴圈連結串列(約瑟夫問題)--python實現Python
- 用Python實現約瑟夫環演算法Python演算法
- 力扣561. 陣列拆分 I-C語言實現-簡單題力扣陣列C語言
- 約瑟夫問題(丟手絹問題)
- 猴子選大王,約瑟夫問題
- java環形連結串列約瑟夫環問題筆記Java筆記
- 約瑟夫環遊戲遊戲
- zcmu1862——zbj的狼人殺(約瑟夫環問題)
- UVALive 3882--And Then There Was One+約瑟夫環問題變形
- C語言 二維陣列課題程式碼C語言陣列
- 約瑟夫生者死者遊戲問題遊戲
- 約瑟夫環(超好的程式碼存檔)--19--約瑟夫環--LeetCode面試題62(圓圈最後剩下的數字)LeetCode面試題
- 約瑟夫環(Josephus)問題--報數遊戲(連結串列)遊戲
- 教你C語言實現通訊錄的詳細程式碼C語言
- 力扣566. 重塑矩陣-C語言實現-簡單題力扣矩陣C語言
- 力扣896. 單調數列-C語言實現-簡單題力扣C語言
- C語言簡單程式碼程式C語言
- 約瑟夫環(vector類解決)
- 洛谷題單指南-線性表-P1996 約瑟夫問題996
- 【圖解經典演算法題】如何用一行程式碼解決約瑟夫環問題圖解演算法行程
- c語言關於陣列的簡單運算C語言陣列
- 約瑟夫環(線性列表的思想)
- C語言/C++程式設計學習:棧的程式碼實現之陣列方案C語言C++程式設計陣列
- 資料結構實驗一:順序表的建立與操作實現、順序表實現約瑟夫環問題資料結構
- C語言陣列實現三子棋C語言陣列
- C語言 二維陣列實現三子棋的思路及程式碼C語言陣列
- C語言陣列C語言陣列
- 最大連續子陣列和求解問題(C語言)陣列C語言
- 160行程式碼仿Vue實現極簡雙向繫結[詳細註釋]行程Vue
- 牛客題霸NC132環形連結串列的約瑟夫問題Java題解Java
- 實驗九 類與物件(一) 程式片段程式設計題 5. 約瑟夫問題2020-12-12物件程式設計
- c語言字元陣列C語言字元陣列