約瑟夫環(huán)問題(數(shù)組法)c語言實現(xiàn)
問題說明
這個問題是以弗拉維奧·約瑟夫斯命名的,它是1世紀的一名猶太歷史學家。他在自己的日記中寫道,他和他的40個戰(zhàn)友被羅馬軍隊包圍在洞中。他們討論是自殺還是被俘,最終決定自殺,并以抽簽的方式決定誰殺掉誰。約瑟夫斯和另外一個人是最后兩個留下的人。約瑟夫斯說服了那個人,他們將向羅馬軍隊投降,不再自殺。約瑟夫斯把他的存活歸因于運氣或天意,他不知道是哪一個機智的約瑟夫!
有N個編號為1~N的人圍成一圈,現(xiàn)在每隔兩個人(比如:1、4 之間隔了2、3)就將一個人淘汰出去,問最后剩下的是編號為幾的人?
算法代碼如下
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int people_count = 0;
int *peoples = NULL;
printf("please input people number: ");
scanf("%d", &people_count);
if (people_count < 2){
printf("can't do Joseph\n");
}
peoples = (int *)calloc(people_count, sizeof(int));
int i;
for(i = 0; i < people_count; i++){
peoples[i] = i+1;
}
i = 0;
int j = 0;
int rest = people_count;
while(rest){
if (i >= people_count){
i %= people_count;
}
if (peoples[i] == 0){
i++;
continue;
}
if (j++ % 3 ==0 && rest > 1){
printf("kill people NO. %d\n", peoples[i]);
peoples[i] = 0;
rest--;
}else if (rest==1){
printf("NO. %d is alive\n", peoples[i]);
rest--;
}
i++;
}
system("pause");
return 0;
}
欄 目:C語言
下一篇:c語言生成隨機數(shù)的方法(獲得一組不同的隨機數(shù))
本文標題:約瑟夫環(huán)問題(數(shù)組法)c語言實現(xiàn)
本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/3847.html
您可能感興趣的文章
- 01-10深入理解約瑟夫環(huán)的數(shù)學優(yōu)化方法
- 01-10數(shù)據結構課程設計- 解析最少換車次數(shù)的問題詳解
- 01-10c語言 跳臺階問題的解決方法
- 01-10HDOJ 1443 約瑟夫環(huán)的最新應用分析詳解
- 01-10用貪心法求解背包問題的解決方法
- 01-10APUE筆記之:進程環(huán)境詳解
- 01-10深入第K大數(shù)問題以及算法概要的詳解
- 01-10深入N皇后問題的兩個最高效算法的詳解
- 01-10深入解析Linux下\r\n的問題
- 01-10數(shù)組中求第K大數(shù)的實現(xiàn)方法


閱讀排行
本欄相關
- 04-02c語言函數(shù)調用后清空內存 c語言調用
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言的正則匹配函數(shù) c語言正則表達
- 04-02c語言用函數(shù)寫分段 用c語言表示分段
- 04-02c語言中對數(shù)函數(shù)的表達式 c語言中對
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段
- 04-02C語言中怎么打出三角函數(shù) c語言中怎
- 04-02c語言調用函數(shù)求fibo C語言調用函數(shù)求
隨機閱讀
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 04-02jquery與jsp,用jquery
- 01-10C#中split用法實例總結
- 01-10delphi制作wav文件的方法
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-11ajax實現(xiàn)頁面的局部加載
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 01-10SublimeText編譯C開發(fā)環(huán)境設置
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文