###### tags: `code` # c14086167-homework-5-2 ```cpp= #include <iostream> using namespace std; int num_array[100]; int kick_array[100]; int t = 100; //表示剩下幾個數 void Num_array(); void rotation(); void three(); void five(); void Kick_array(); int main(){ Num_array(); //定義100個數字 Kick_array(); //淘汰3個再淘汰5個 + 定義 kick_array for(int i=0; i<100; i++){ cout << kick_array[i] << endl; } } void Num_array() { //A = {1,2,...,100} for (int i = 0; i < 100; i++) { num_array[i] = i + 1; } } void rotation() { //逆時針旋轉 一次 int a = num_array[0]; //保存第一個的值 for (int i = 0; i < t - 1; i++) { //後項覆蓋前項 num_array[i] = num_array[i + 1]; } num_array[t - 1] = a; //最後一個為第一個值 } void three() { //每3個淘汰一個 for (int i = 0; i < 2; i++) { //第三個是第一個再轉2次 rotation(); } kick_array[100 - t] = num_array[0]; //定義kick_array for (int i = 0; i < t - 1; i++) { //被淘汰 所以直接被後項覆蓋即可 num_array[i] = num_array[i + 1]; } t--; //淘汰一個 總數減一 } void five() { //每5個淘汰一個 同每3個淘汰 只是多轉2圈 for (int i = 0; i < 4; i++) { rotation(); } kick_array[100 - t] = num_array[0]; for (int i = 0; i < t - 1; i++) { num_array[i] = num_array[i + 1]; } t--; } void Kick_array() { //淘汰3個再淘汰5個 100剛好是2的倍數 不用break while (t > 0) { three(); five(); } } ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up