約瑟夫環問題 猴子選大王問題
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void)
{
int n,m;
scanf("%d %d",&n,&m);
int *p=(int*)malloc(sizeof(int)*n);
for(int i=0;i<n;i++)
{p[i]=i+1;}
int a=n-1; //從叫號 的前一個編號的下標 開始
for(int i=1;i<n;i++)
{
int k=0; //叫號 計數
do{a=(a+1)%n; //下標號加1 標號不能大於n
if(p[a]!=0)k++; //猴子的編號不為0 叫號
}while(k!=m);//叫號 滿m 退出迴圈
printf("出圈的編號為%d\n",p[a]);
p[a]=0;} //將出圈的猴子 編號改變為0
for(int i=0;i<n;i++)
{if(p[i])
printf("輸出大王為%d",p[i]);}
free(p);
system("PAUSE");
return 0;
}
執行結果:
若一圈猴子不是從編號為1的猴子 開始叫號
從編號為q的猴子開始 叫號
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void)
{
int n,m,q;
scanf("%d %d",&n,&m,&q);
int *p=(int*)malloc(sizeof(int)*n);
for(int i=0;i<n;i++)
{p[i]=i+1;}
int a=(q-2+n)%n; //叫號的猴子的前一個猴子 開始計數
for(int i=1;i<n;i++)
{
int k=0;
do{a=(a+1)%n;
if(p[a]!=0)k++;
}while(k!=m);
printf("出圈的編號為%d\n",p[a]);
p[a]=0;}
for(int i=0;i<n;i++)
{if(p[i])
printf("輸出大王為%d",p[i]);}
free(p);
system("PAUSE");
return 0;
}
相關文章
- 猴子選大王,約瑟夫問題
- 約瑟夫環問題
- 約瑟夫問題
- 約瑟夫環(約瑟夫問題)求最後出列的人數
- 約瑟夫問題(丟手絹問題)
- 約瑟夫生者死者遊戲問題遊戲
- java環形連結串列約瑟夫環問題筆記Java筆記
- UVALive 3882--And Then There Was One+約瑟夫環問題變形
- zcmu1862——zbj的狼人殺(約瑟夫環問題)
- 約瑟夫環(Josephus)問題--報數遊戲(連結串列)遊戲
- 牛客題霸NC132環形連結串列的約瑟夫問題Java題解Java
- 迴圈連結串列(約瑟夫問題)--python實現Python
- 洛谷題單指南-線性表-P1996 約瑟夫問題996
- 約瑟夫環遊戲遊戲
- 猴子選大王-phpPHP
- C語言演算法競賽入門(二)—陣列元素移動、排序問題、猴子選大王問題C語言演算法陣列排序
- 【圖解經典演算法題】如何用一行程式碼解決約瑟夫環問題圖解演算法行程
- 約瑟夫環(vector類解決)
- 約瑟夫環(陣列實現)陣列
- 約瑟夫環(超好的程式碼存檔)--19--約瑟夫環--LeetCode面試題62(圓圈最後剩下的數字)LeetCode面試題
- C語言陣列實現約瑟夫環出圈問題 程式碼詳細註釋 簡單易懂C語言陣列
- 約瑟夫環(線性列表的思想)
- 猴子吃桃問題
- 1234: 華科版C語言程式設計教程(第二版)習題6.11(約瑟夫問題)C語言程式設計
- 實驗九 類與物件(一) 程式片段程式設計題 5. 約瑟夫問題2020-12-12物件程式設計
- JAVA 猴子分桃子問題Java
- 用Python實現約瑟夫環演算法Python演算法
- 資料結構實驗一:順序表的建立與操作實現、順序表實現約瑟夫環問題資料結構
- 習題4-10 猴子吃桃問題
- 約瑟夫問題,輸入總人數,自動產生大於0小於n的隨機數隨機
- JS資料結構第三篇---雙向連結串列和迴圈連結串列之約瑟夫問題JS資料結構
- Golang GRPC 環境 問題GolangRPC
- 樹形問題選講
- 約瑟夫·寇德卡:成為一個吉普賽人
- 解決所有環境問題
- el-upload點選問題
- laravel選單問題,請指教Laravel
- 搭建TS環境遇到的問題