約瑟夫環 C語言
#include<stdio.h> int main() { int m,n,i,j,k=0,a[100]={0}; scanf("%d%d",&n,&m); if(n>=1&&m<=1000000) { for(i=0;i<n;i++) { a[i]=i+1; } while(n>1) { i=(i+m-1)%n; k++; for(j=i+1;j<n;j++) { a[j-1]=a[j]; } n--; if(i==n) { i=0; } } } printf("%d\n",a[i]); return 0; }
相關推薦
約瑟夫環 C語言 單循環鏈表
node 前驅 輸入 truct sizeof -- 描述 reat 約瑟夫 /*---------約瑟夫環---------*/ /*---------問題描述---------*/ /*編號為1,2,…,n的n個人圍坐一圈,每人持一個密碼(正整數)。 一開始
約瑟夫環C語言程式 day1
約瑟夫環問題,n個人圍著一張桌子,從1開始報數,規定報道第k數的人自殺,接著下一給重新開始報數。這裡n=41,k=3。 #include<stdio.h> #include<stdlib.h> typedef int EleType; typedef struct L
約瑟夫環 C語言
#include<stdio.h> int main() { int m,n,i,j,k=0,a[100]={0}; scanf("%d%d",&n,&m); if(n>=1&&m<=1000000) { for(i=0;i&l
約瑟夫環--C語言
約瑟夫(Joseph)問題的一種描述是:編號為1,2,3,…,n的n個人按順時針方向圍坐一圈。每人持有一個密碼(正整數)。一開始任選一個正整數作為報數上限值m,從第一個人開始按順時針方向自1開始順序報數,報到m時停止報數,令其出列,將他的密碼作為新的m值,從他在順時針方向上的下一個人開始
資料結構之約瑟夫環C語言實現
資料結構,是很重要的一門學科,每年考研,資料結構是各大院校必考的科目。當然,資料結構,最令人頭疼的就是演算法設計題了。為了幫助大家理解和掌握資料結構常見的演算法,學長推出系列文章,為大家分享這些重要演算法的C語言完成實現,大家有條件的話,可以在電腦上除錯執行,加深
約瑟夫環——C語言迴圈連結串列模擬
約瑟夫問題已知n個人圍城一週,編號1,2,3,.......,n,從1號開始報數,每隔k個人報到數的人出列。常見解決方法,遞迴或迴圈連結串列模擬迴圈連結串列模擬程式碼#include<stdio.h> //以30個人為例 ,每7個人出列為例 #include
約瑟夫環(c++版)
問題描述 約瑟夫環(約瑟夫問題)是一個數學的應用問題:已知n個人(以編號1,2,3…n分別表示)圍坐在一張圓桌周圍。從編號為1的人開始報數,數到m的那個人出列;他的下一個人又從1開始報數,數到m的那個人又出列;依此規律重複下去,直到圓桌周圍的人全部出列。通
約瑟夫環C++實現很經典的做法
原文地址:http://www.cnblogs.com/hanxi/archive/2012/10/10/2718413.html /* **********************迴圈連結串列解決約瑟夫環問題*********************** * 問題:約瑟
約瑟夫環的c語言實現(代碼已實現)
def 數字 com max std urn img pri c語言實現 # include <stdio.h> #define MAXLEN 20 int front=MAXLEN-1;//隊列初始化 int rear=MAXLEN-1; enqu
約瑟夫環的c語言實現(程式碼已實現)
# include <stdio.h> #define MAXLEN 20 int front=MAXLEN-1;//佇列初始化 int rear=MAXLEN-1; enqueue(int q[],int x) //入隊 { rea
約瑟夫環(使用C語言單向迴圈連結串列來解決)
題目描述 編號為1,2,…,n的n個人按順時針方向圍坐在一張圓桌周圍,每人持有一個密碼(正整數)。一 開始任選一個正整數m作為報數上限值,從第一個人開始按順時針方向自1開始報數,報到m時停止報數,報m的那 個人出列,將他的密碼作為新的m值,從他順時針方向的下一個人開始重新從1報數,
(演算法)C語言模擬約瑟夫環問題
約瑟夫環問題描述 m個人圍坐一圈,每人持有一個數字,從第一個人開始從1報數,報到n(第一輪n任意給定)的人出圈,將n改為這個出圈的人所持有的數字,下個人開始從1報數,繼續報到n的人出列;依次類推直到所有
C++語言基礎 實踐參考——Josephus 約瑟夫環 問題
【專案-Josephus(約瑟夫環)問題】n個小孩子圍成一圈,從第一個小孩子開始順時針方向數數字,到第m個小孩子離開,這樣反反覆覆,最終只剩下一個小孩子,求第幾個小孩子留下? 提示:約瑟夫環即是一個首尾相連的連結串列,在建立好這個環以後,從頭結點開始,每次間隔m孩子刪除一
C語言用陣列1. 簡單約瑟夫環問題: N個人,編號從1~N圍成一圈,輸入一個數T,從1號開始報數,報到T的人出圈;下一人又從1開始報數,下一個報到T的人出圈,輸出出圈順序。 考慮問實現約瑟夫環問題
1. 簡單約瑟夫環問題: N個人,編號從1~N圍成一圈,輸入一個數T,從1號開始報數,報到T的人出圈;下一人又從1開始報數,下一個報到T的人出圈,輸出出圈順序。 考慮問題: 報到T的人出圈,怎麼表示出圈?要麼刪除對應的標號,其他的標號前移(如果是陣列結構,要依次移動
《C++語言基礎》實踐參考——Josephus(約瑟夫環)問題
【專案-Josephus(約瑟夫環)問題】n個小孩子圍成一圈,從第一個小孩子開始順時針方向數數字,到第m個小孩子離開,這樣反反覆覆,最終只剩下一個小孩子,求第幾個小孩子留下? 提示:約瑟夫環即是一
C語言解決約瑟夫環問題 詳細註釋
約瑟夫環演算法是: n 個人圍成一圈,每個人都有一個互不相同的密碼,該密碼是一個整數值,選擇一個人作為起點,然後順時針從 1 到 k(k為起點人手中的密碼值)數數。數到 k 的人退出圈子,然後從下一個人開始繼續從 1 到 j (j為剛退出圈子的人的密碼)數數,數到 j 的人退
C語言經典演算法100例-069-簡單約瑟夫環問題
這裡我們實現一個簡單的約瑟夫環問題,描述如下: 有N個人站成一圈,從第一個人開始報數,從1報到3,報到3的那個人走出圈,然後從下一個人開始從1繼續報數,重複上面的過程,直到最後圈裡只剩下一個人,問這個人是哪個人? 分析:首先,我們要給這N個人編號,分別編為1到N, 然後,開
C語言,陣列實現約瑟夫環問題(兩種方法)
約瑟夫環問題:約瑟夫環是一個數學的應用問題:已知n個人(以編號1,2,3...n分別表示)圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列;他的下一個人又從1開始報數,數到m的那個人又出列;依此規律重複下去,直到圓桌周圍的人全部出列。 第一種方法:要求將每次
c語言實現約瑟夫環-每隔幾個刪除一個,求剩下的
c語言連結串列實現約瑟夫環的程式碼,每隔任意元素刪除一個,逐步輸出各個刪除元素 #include<stdio.h> #include<malloc.h> #include<string.h> #define N 10 struct lno
迴圈連結串列(約瑟夫環)的建立及C語言實現
連結串列的使用,還可以把連結串列的兩頭連線,形成了一個環狀連結串列,稱為迴圈連結串列。和它名字的表意一樣,只需要將表中最後一個結點的指標指向頭結點,就形成了一個環。 圖1 迴圈連結串列 迴圈連結串列和動態連結串列相比,唯一的不同就是迴圈連結串列首尾相連,其他都完全一