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; //出隊人的值放在陣列最後
}
}
相關文章
- 約瑟夫環(陣列實現)陣列
- 約瑟夫環問題——初步瞭解+陣列實現陣列
- 陣列解決約瑟夫環問題陣列
- 約瑟夫出圈演算法演算法
- 約瑟夫問題pascal程式
- 面試題—Java遞迴實現約瑟夫環面試題Java遞迴
- 約瑟夫(Josephus problem)環問題初探
- 力扣561. 陣列拆分 I-C語言實現-簡單題力扣陣列C語言
- IOS 約瑟夫環遊戲的實現iOS遊戲
- javascript中使用迴圈連結串列實現約瑟夫環問題JavaScript
- C語言 二維陣列課題程式碼C語言陣列
- C語言 簡單的佇列(陣列佇列)C語言佇列陣列
- 約瑟夫環 佇列+連結串列佇列
- 力扣566. 重塑矩陣-C語言實現-簡單題力扣矩陣C語言
- 力扣896. 單調數列-C語言實現-簡單題力扣C語言
- 教你C語言實現通訊錄的詳細程式碼C語言
- 物件導向程式設計 約瑟夫問題簡要分析物件程式設計
- 約瑟夫環遊戲遊戲
- C語言簡單程式碼程式C語言
- java環形連結串列約瑟夫環問題筆記Java筆記
- 1234: 華科版C語言程式設計教程(第二版)習題6.11(約瑟夫問題)C語言程式設計
- js利用指標操作約瑟夫問題程式碼例項JS指標
- 迴圈連結串列(約瑟夫問題)--python實現Python
- c語言關於陣列的簡單運算C語言陣列
- 用Python實現約瑟夫環演算法Python演算法
- 約瑟夫環(Josephus)問題--報數遊戲(連結串列)遊戲
- 自己封裝的瀑布流外掛,含最詳細註釋,簡單易懂。封裝
- C語言/C++程式設計學習:棧的程式碼實現之陣列方案C語言C++程式設計陣列
- 連結串列面試題(八)---約瑟夫環面試題
- 用C語言實現八數碼問題C語言
- C語言陣列實現三子棋C語言陣列
- 約瑟夫環(超好的程式碼存檔)--19--約瑟夫環--LeetCode面試題62(圓圈最後剩下的數字)LeetCode面試題
- (C語言)簡單明瞭的 陣列模擬棧+ (C++)陣列模擬棧C語言陣列C++
- C 語言實現使用靜態陣列實現迴圈佇列陣列佇列
- C 語言實現使用動態陣列實現迴圈佇列陣列佇列
- C語言陣列C語言陣列
- C語言 二維陣列實現三子棋的思路及程式碼C語言陣列
- 160行程式碼仿Vue實現極簡雙向繫結[詳細註釋]行程Vue