亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

約瑟夫環 c++ 數據結構

約瑟夫環 c++ 數據結構

C++
幕布斯6054654 2019-04-15 12:12:13
 這古羅馬史學家Josephus提出的問題。設有N個人圍坐一圈,從某個人開始報數,數到M的人出列,接著從出列的下一個人開始重新報數,數到M的人又出列,如此下去,直到所有人都出列為止.試設計確定他們的出列次序序列的程序. [實習要求] 選擇單向循環鏈表作為存儲結構來模擬整個過程,并依次輸入出列的人的編號。開始時可指定總人數N和報數M。開始報數人從鍵盤輸入。
查看完整描述

2 回答

?
慕桂英3389331

TA貢獻2036條經驗 獲得超8個贊

 參考代碼:
  #include<stdio.h>
  #include<stdlib.h>
  #include<malloc.h>
  typedef struct LNode{
  int number;
  struct LNode *next;
  } LNode,*Linklist;
  int main()
  {
  int M,N;
  int i;
  Linklist L,r;
  printf("Please input two M , N:");
  scanf("%d%d",&M,&N);
  L = (Linklist)malloc(N * sizeof(struct LNode));
  if(L == NULL) printf("Error!\n"),exit(0);
  r = L;
  for(i = 1;i < N;i++)
  {
  r->next = L + i;
  r->number = i;
  r = r->next;
  }
  r->next = L;
  r->number = N;
  while(r != r->next)
  {
  for(i = 0;i < M - 1;i++)
  r = r->next;
  printf("%4d",r->next->number);
  r->next = r->next->next;
  }
  printf("\n When N = %d and M = %d,Josephus,hiding in position %d survive.\n",N,M,r->number);
  free(L);
  }



查看完整回答
反對 回復 2019-04-16
  • 2 回答
  • 0 關注
  • 369 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號