猴子选王c语言链表程序代码,C语言程序设计-猴子选大王[链表应用]
2032 猴子選大王
Description
有N只猴子,從1~N進行編號。它們按照編號的順時針方向排成一個圓圈,然后從第一只猴子開始報數。第一只猴子報的第一個數字為1,以后每只猴子報的數字都是它們前面猴子所報數字加1。如果一個猴子報的數字是M,則該猴子出列,下一個猴子重新從1開始報數,直到所有猴子都出列為止,最后一個出列的猴子勝出。你的任務是對于給定猴子數量和報數上限值M,確定出能夠被選作大王的猴子的編號。
Input
第一行為一個整數N,表示測試數據的組數,接下來的N行中每行包含兩個整數,第一個數是猴子的個數,第二個數是報數上限值M(M>1),兩數之間由空格分隔。
Output
輸出共N行,每行為對應輸入行獲勝猴子的編號。
Sample Input
2
8 5
5 8
Sample Output
3
1
#include
#include
/* 定義鏈表節點類型 */
typedef struct node
{
int data;
struct node *next;
}linklist;
int creat(int n, int m)
{
linklist *head, *p, *s, *q;
int i, total;
/* 創建循環鏈表,頭節點也存信息 */
head = (linklist*) malloc(sizeof(linklist));
p = head;
p->data = 1;
p->next = p;
/* 初始化循環鏈表 */
for (i = 2; i <= n; i++)
{
s = (linklist*) malloc(sizeof(linklist));
s->data = i;
s->next = p->next;
p->next = s;
p = p->next;
}
p = head;
/* 保存節點總數 */
total = n;
q = head;
/* 只剩一個節點時停止循環 */
while (total != 1)
{
/* 報數過程,p指向要刪除的節點 */
for (i = 1; i < m; i++)
{
p = p->next;
}
/* q 指向 p 節點的前驅 */
while (q->next != p)
{
q = q->next;
}
/* 刪除 p 節點 */
q->next = p->next;
/* 保存被刪除節點指針 */
s = p;
/* p 指向被刪除節點的后繼 */
p = p->next;
/* 釋放被刪除的節點 */
free(s);
/* 節點個數減一 */
total--;
}
//free(p);
/* 打印最后剩下的節點序號 */
int vsdata=p->data;
free(p);
return vsdata;
}
int main()
{
int n[10], m[10];
/* 讀入問題條件 */
int k;
scanf("%d", &k);
for (int i=0;i
{
scanf("%d%d",&n[i],&m[i]);
}
for (int ii=0;ii
{
printf("%d\n",creat(n[ii],m[ii]));
}
return 0;
}
sicily 猴子選大王
題目描述 猴子選大王,有N只猴子,從1-N進行編號.它們按照編號的順時針方向,排成一個圓圈,然后從第一只猴子開始報數.第一只猴子報1,以后每只猴子報的數字都是它前面猴子所報數字加1.如果一只猴子報的數 ...
POJ3750: 小孩報數問題+一道經典約瑟夫問題(猴子選大王)
又一次因為一個小錯誤,POJ上Wrong Answer了無數次..... 在差不多要放棄的時候,發現了這個猥瑣的不能再猥瑣的bug,改完了提交就AC了,簡直無語.... 本題wo采用模擬方法: 1 # ...
PHP編程----猴子選大王
猴子選大王 (約瑟夫環)(c#)
猴子選大王問題: 一堆猴子都有編號,編號是1,2,3 ...m ,這群猴子(m個)按照1到m的順序圍坐一圈, 從第1開始數,每數到第n個,該猴子就要離開此圈,這樣依次下來,直到圈中只剩下最后一只猴子, ...
PHP洗牌、猴子選大王兩個小算法
洗牌算法 /** *洗牌算法washCard *@param $cardNum *@return array */ function washCard($cardNum) { $ca ...
猴子選大王的c#實現
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的猴子选王c语言链表程序代码,C语言程序设计-猴子选大王[链表应用]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言程序设计华北电力大学,华北电力大学
- 下一篇: 络腮胡永久脱毛的方法