問題描述
學校給高一(三)班分配了乙個名額,去參加奧運會的開幕式。每個人都爭著要去,可是名額只有乙個,怎麼辦?班長想出了乙個辦法,讓班上的所有同學(共有n個同學)圍成一圈,按照順時針方向進行編號。然後隨便選定乙個數m,並且從1號同學開始按照順時針方向依次報數,1, 2, …, m,凡報到m的同學,都要主動退出圈子。然後不停地按順時針方向逐一讓報出m者出圈,最後剩下的那個人就是去參加開幕式的人。
要求:用環形鍊錶的方法來求解。所謂環形鍊錶,即對於鍊錶尾結點,其next指標又指向了鍊錶的首結點。基本思路是先建立乙個環形鍊錶,模擬眾同學圍成一圈的情形。然後進入迴圈淘汰環節,模擬從1到m報數,每次讓一位同學(結點)退出圈子。
輸入格式:輸入只有一行,包括兩個整數n和m,其中n和 m的含義如上所述。
輸出格式:輸出只有乙個整數,即參加開幕式的那個人的編號。
樣例輸入
8 3樣例輸出
7題目思路
先用尾插法初始化鍊錶,再通過迴圈將對應的學生淘汰,只留下最後乙個學生。
#include
#include
typedef
struct stustu;
stu *
initlist
(int n)
return s->next;
}stu *
del(stu *p)
r->next=p->next;
free
(p);
return r->next;
}int
main()
else
}printf
("%d"
,p->flag)
;return0;
}
藍橋杯 C 奧運會開幕式
題目閱覽 學校給高一 三 班分配了乙個名額,去參加奧運會的開幕式。每個人都爭著要去,可是名額只有乙個,怎麼辦?班長想出了乙個辦法,讓班上的所有同學 共有n個同學 圍成一圈,按照順時針方向進行編號。然後隨便選定乙個數m,並且從1號同學開始按照順時針方向依次報數,1,2,m,凡報到m的同學,都要主動退出...
試題 演算法提高 奧運會開幕式
思路 環形鍊錶,可以用,也可以用單鏈表,只要將彈出的再加入單鏈表的尾部即可,詳看 資源限制 時間限制 1.0s 記憶體限制 256.0mb 問題描述 學校給高一 三 班分配了乙個名額,去參加奧運會的開幕式。每個人都爭著要去,可是名額只有乙個,怎麼辦?班長想出了乙個辦法,讓班上的所有同學 共有n個同學...
藍橋杯 ADV 296 演算法提高 奧運會開幕式
演算法提高 奧運會開幕式 時間限制 1.0s 記憶體限制 256.0mb 問題描述 學校給高一 三 班分配了乙個名額,去參加奧運會的開幕式。每個人都爭著要去,可是名額只有乙個,怎麼辦?班長想出了乙個辦法,讓班上的所有同學 共有n個同學 圍成一圈,按照順時針方向進行編號。然後隨便選定乙個數m,並且從1...