约瑟夫环c语言计蒜客链表,约瑟夫环的故事 - osc_3n35hvex的个人空间 - OSCHINA - 中文开源技术交流社区...
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespace約瑟夫環問題
{public classJosephusring
{public static int nums { get; set; } = 41;public static int[] people = new int[nums];private static int outpeople = 3;static void Main(string[] args)
{
Console.WriteLine("約瑟夫環問題:\n"+ "據說著名猶太歷史學家Josephus有過以下的故事:在羅馬人占領喬塔帕特后,39個猶太人與Josephus及他的朋友躲到一個洞中,39個猶太人決定寧愿死也不要被敵人抓到,于是決定了一個自殺方式,41個人排成一個圓圈,由第1個人開始報數,每報數到第3人該人就必須自殺,然后再由下一個重新報數,直到所有人都自殺身亡為止。然而Josephus和他的朋友并不想遵從。他將朋友與自己安排在第16個與第31個位置,于是逃過了這場死亡游戲。");
Josephusring j= newJosephusring();
j.InitJosephusRing();
j.Printf_Ring();int left =nums;int counter = 0;int i = 0;while (true)
{if (people[i] > 0)
{
counter++;
}if (counter ==outpeople)
{
left--;
Console.WriteLine(people[i]+ "號出局了!\n\n");
Console.WriteLine("\n\n");
people[i]= 0;
counter= 0;
}if (people[i]!=0)
{
Console.WriteLine("當前總人數" + left + "\t" + "當前報數者:" + (i + 1) + "\n");
}
j.Printf_Ring();if (left <= 2)
{break;
}
i++;if (i ==nums)
{
i= 0;
}
}
Console.WriteLine("Gameover!!!");
}public voidInitJosephusRing()
{for (int i = 0; i < nums; i++)
{
people[i]= i + 1;
}
}public voidPrintf_Ring()
{for (int i = 0; i < nums; i++)
{
Console.Write("\t[" + people[i] + "]");
}
Console.WriteLine();
}
}
}
總結
以上是生活随笔為你收集整理的约瑟夫环c语言计蒜客链表,约瑟夫环的故事 - osc_3n35hvex的个人空间 - OSCHINA - 中文开源技术交流社区...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c 语言cad 二次开发,c#对Auto
- 下一篇: linux lz4 lzo,Linux六