SDUT 1197 約瑟夫問題

2021-08-17 14:34:48 字數 891 閱讀 5553

約瑟夫問題

time limit: 1000 ms memory limit: 65536 kib

problem description

n個人想玩殘酷的死亡遊戲,遊戲規則如下:

n個人進行編號,分別從1到n,排成乙個圈,順時針從1開始數到m,數到m的人被殺,剩下的人繼續遊戲,活到最後的乙個人是勝利者。

請輸出最後乙個人的編號。

input

輸入n和m值。

output

輸出勝利者的編號。

sample input

5 3sample output

hint

第一輪:3被殺第二輪:1被殺第三輪:5被殺第四輪:2被殺

#include 

#include

struct node ;

//建立迴圈鍊錶

struct node * create(int n)

tail->next=head->next;

return head;

}int

kill(struct node *head,int

m) head->next=head->next->next;

}return head->data;

}int main()

0

1 2 3

5 4

注意,5和1連線,從head進入,之後迴圈中不會存在head了,就是這個道理。

迴圈m-1次,到被殺者前面一位,之後 head->next=head->next->next,斷開前一位的連線,直接拋棄被殺者,之後迴圈就很好建立起來了。

這題難度不大,很簡單。

約瑟夫問題 sdut 1197

約瑟夫問題 time limit 1000ms memory limit 65536k 題目描述 n個人想玩殘酷的死亡遊戲,遊戲規則如下 n個人進行編號,分別從1到n,排成乙個圈,順時針從1開始數到m,數到m的人被殺,剩下的人繼續遊戲,活到最後的乙個人是勝利者。請輸出最後乙個人的編號。輸入 輸入n和...

1197約瑟夫問題

time limit 1000ms memory limit 65536k 有疑問?點這裡 n個人想玩殘酷的死亡遊戲,遊戲規則如下 n個人進行編號,分別從1到n,排成乙個圈,順時針從1開始數到m,數到m的人被殺,剩下的人繼續遊戲,活到最後的乙個人是勝利者。請輸出最後乙個人的編號。輸入n和m值。輸出勝...

1197約瑟夫問題

約瑟夫問題 time limit 1000 ms memory limit 65536 kib problem description n個人想玩殘酷的死亡遊戲,遊戲規則如下 n個人進行編號,分別從1到n,排成乙個圈,順時針從1開始數到m,數到m的人被殺,剩下的人繼續遊戲,活到最後的乙個人是勝利者。...