亚欧洲精品在线观看,窝窝影院午夜看片,久久国产成人午夜av影院宅,午夜91,免费国产人成网站,ts在线视频,欧美激情在线一区

C語言

C語言用數(shù)組解決約瑟夫環(huán)問題

時間:2024-09-01 05:31:51 C語言 我要投稿
  • 相關(guān)推薦

C語言用數(shù)組解決約瑟夫環(huán)問題

  問題說明:

  在羅馬人占領(lǐng)喬塔帕特后,39 個猶太人與約瑟夫及他的朋友躲到一個洞中,大家決定寧愿自殺也不要被敵人抓到,于是確定了一個自殺方式,41個人排成一個圓圈,由第1個人開始報數(shù),每報數(shù)到第3人該人就必須自殺,然后再由下一個重新報數(shù),直到所有人都自殺身亡為止。然而約瑟夫和他的朋友并不想死去,那么他應(yīng)該怎樣安排他和他的朋友的位置,才能逃脫這場死亡游戲呢?

  有N個編號為1~N的人圍成一圈,現(xiàn)在每隔兩個人(比如:1、4 之間隔了2、3)就將一個人淘汰出去,問最后剩下的是編號為幾的人?

  算法代碼如下:

  #include

  #include

  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語言用數(shù)組解決約瑟夫環(huán)問題】相關(guān)文章:

C語言的循環(huán)鏈表和約瑟夫環(huán)09-29

關(guān)于c語言約瑟夫問題輸出序號算法10-16

什么是C語言數(shù)組10-03

C語言數(shù)組教程08-31

C語言數(shù)組方法08-06

C語言數(shù)組實例解析10-21

C語言數(shù)組的定義及引用08-05

C語言數(shù)組是什么08-25

C語言數(shù)組知識點10-14

C語言數(shù)組知識點07-15