約瑟夫問題
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注意,5和1連線,從head進入,之後迴圈中不會存在head了,就是這個道理。1 2 3
5 4
迴圈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的人被殺,剩下的人繼續遊戲,活到最後的乙個人是勝利者。...