# 黎明高中資訊社第一次段考 --- ## 目錄: > [TOC] ## 說明: 原則上與平時考無太大的不同。但是總共會有10題,4題簡單,3題基本,2題中等,1題難題。 ## 完成者填寫說明: 跟平時考規則相同。 ## 時間: 2020/05/15至2020/05/31<10 p.m> ## 獎勵: 1.高一:社長參政權(X) 2.高二:飲料 ## 社長的話: 當“我們”的學弟在上次平時考五題全對,於是“我們”的社長這次挑題目時: ![我將大開殺戒](https://i.imgur.com/fH87TmS.jpg) > [name=風思] > [color=#f55f] ## 副社長的話: >1. 白天工作,晚上讀書,假日批判。 >2. 是男人就倒吃甘蔗(從第10題開始寫)。 >3. 唯有 舉起你的右手,才能打破資本主義的高牆。 >[color=#85fe] ![假日批判](https://i.imgur.com/myWpOjr.jpg) > 簡單來講就是自求多福吧 > [color=#85fe] > [name=李弘唯] ## 吉祥物的話: 無論遇到甚麼困難都不要怕,幹就完事了!我的頭髮QWQ ![奧力给](https://i.imgur.com/VDuH47f.jpg) ## 解答: 社長解答已釋出。 --- ### 1.<font color="#39FF33">[C_MM250-易] 汽車油耗</font> #### =>[題目連結](https://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=15584) #### 問題敘述: 一部汽車油箱容量為m公升,假如汽車行駛時每分鐘油耗為n公升,試問剛加滿油的汽車能行駛多少小時。例如,汽車油箱容量為24公升,汽車行駛時每分鐘油耗為0.04公升, 當此輛汽車加滿油後,能行駛多10.0小時。 ### 完成者: 1. <社長> > [time=Fri, May 15, 2020 7:51 PM] 2. <張嘉元> > [time=Fri, May 15, 2020 10:47 PM] 3. <吳品範> > [time=Fri, May 15, 2020 10:50 PM] 4. <李晨維> > [time=Fri, May 15, 2020 11:56 PM] 5. <郭浩雲> > [time=Sat, May 16, 2020 12:31 PM] > 天氣好熱 6. <賴晨興> > [time=Sat, May 16, 2020 1:06 PM] 7. <柯昀杰> > [time=Sat, May 16, 2020 1:09 PM] 8. <胡韡薰> > [time=Sat, May 16, 2020 1:25 PM] 9. <陳宜俊> > [time=Sat, May 16, 2020 1:43 PM] 10. <何承煜> > [time=Sat, May 16, 2020 1:51 PM] 11. <吳冠毅> > [time=Sat, May 16, 2020 2:06 PM] 12. <張家寶> > [time=Sat, May 16, 2020 2:51 PM] 13. <黃安佑> > [time=Sat, May 16, 2020 10:40 PM] 14. <林承鋒> > [time= May ] 15. <王昱翔> > [time=Wed, May 20, 2020 11:18 AM] 16. <李弘唯> > [time=Wed, May 27, 2020 9:56 PM] #### 社長提供的測資: ``` input: 8700 8.7 ``` ``` output: 16.7 ``` ### 參考解答(社長提供): #### C++: ```cpp= #include <iostream> #include <iomanip> using namespace std; int main(){ double m,n; while(cin >> m >> n) cout << fixed << setprecision(1) << (m/n)/60 << endl; return 0; } ``` ### 參考解答(社員提供): --- ### 2.<font color="#39FF33">[C_ST12-易] 星號依規則輸出</font> #### =>[題目連結](https://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=1320) #### 問題敘述: 參考範例輸入輸出的形式畫出星星。 ### 完成者: 1. <社長> > [time=Fri, May 15, 2020 7:54 PM] 2. <張嘉元> > [time=Fri, May 15, 2020 10:46 PM] 3. <李晨維> > [time=Sat, May 16, 2020 12:17 AM] 4. <郭浩雲> > [time=Sat, May 16, 2020 12:54 PM] 5. <賴晨興> > [time=Sat, May 16, 2020 1:22 PM] 6. <吳品範> > [time=Sat, May 16, 2020 1:27 PM] 7. <柯昀杰> > [time=Sat, May 16, 2020 1:36 PM] 8. <何承煜> > [time=Sat, May 16, 2020 1:52 PM] 9. <陳宜俊> > [time=Sat, May 16, 2020 2:06 PM] 10. <吳冠毅> > [time=Sat, May 16, 2020 2:06 PM] 11. <胡韡薰> > [time=Sat, May 16, 2020 2:13 PM] 12. <張家寶> > [time=Sat, May 16, 2020 3:23 PM] 13. <黃安佑> > [time=Sat, May 16, 2020 10:56 PM] 14. <副社長> > [time=Wed, May 27, 2020 9:30 PM] #### 社長提供的測資: 無。 ### 參考解答(社長提供): #### Java: ```java= import java.util.*; //[C_ST12-易] 星號依規則輸出 //2019,08,07;10:22 public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int A = sc.nextInt(); int B = sc.nextInt(); if (A > B) { for (int i = A; i >= B; i--) { for (int j = 0; j < i; j++) System.out.print("*"); System.out.println(); } } else { for (int i = A; i <= B; i++) { for (int j = 0; j < i; j++) System.out.print("*"); System.out.println(); } } sc.close(); } } ``` ### 參考解答(社員提供): --- ### 3.<font color="#39FF33">[C_MM161-易] 金字塔</font> #### =>[題目連結](https://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?a=3270) #### 問題敘述: 有 N 塊磚頭要推成 K 層的金字塔,金字塔塔頂只有一塊磚頭,接下來每層都多一塊,給定 N 後請計算出 K 最大能為多少。 ### 完成者: 1. <社長> > [time=Fri, May 15, 2020 8:34 PM] 2. <張嘉元> > [time=Fri, May 15, 2020 10:45 PM] 3. <李晨維> > [time=Sat, May 16, 2020 12:22 AM] 4. <吳品範> > [time=Sat, May 16, 2020 12:56 PM] 5. <郭浩雲> > [time=Sat, May 16, 2020 1:07 PM] 6. <吳冠毅> > [time=Sat, May 16, 2020 2:06 PM] 7. <柯昀杰> > [time=Sat, May 16, 2020 2:23 PM] 8. <胡韡薰> > [time=Sat, May 16, 2020 2:37 PM] 9. <陳宜俊> > [time=Sat, May 16, 2020 2:38 PM] 10. <黃安佑> > [time=Sat, May 16, 2020 11:05 PM] 11. <何承煜> > [time=Wed, May 20, 2020 10:38 AM] 12. <李弘唯> > [time=Wed, May 27, 2020 9:12 PM] #### 社長提供的測資: ``` input: 453225 ``` ``` output: 951 ``` ### 參考解答(社長提供): #### C++: ```cpp= #include <iostream> using namespace std; int main(){ int N,K,sum; while(cin >> N){ sum=0; for(K=1;sum<=N;K++) sum+=K; cout << K-2 << endl; } return 0; } ``` ### 參考解答(社員提供): --- ### 4.<font color="#39FF33">[C_ST11-易] 星號菱形輸出</font> #### =>[題目連結](https://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?a=657) #### 問題敘述: 試寫一個程式,可以繪製出如下的圖形:(若輸入偶數,將自動少一行 ) 。 ``` * *** ***** ******* ***** *** * ``` ### 完成者: 1. <社長> > [time=Fri, May 15, 2020 8:58 PM] 2. <張嘉元> > [time=Fri, May 15, 2020 11:23 PM] 3. <李晨維> > [time=Sat, May 16, 2020 12:50 AM] 4. <吳冠毅> > [time=Sat, May 16, 2020 2:06 PM] 5. <郭浩雲> > [time=Sat, May 16, 2020 2:26 PM] 6. <賴晨興> > [time=Sat, May 16, 2020 2:38 PM] 7. <陳宜俊> > [time=Sat, May 16, 2020 3:04 PM] 8. <吳品範> > [time=Sat, May 16, 2020 3:24 PM] 9. <柯昀杰> > [time=Sat, May 16, 2020 3:34 PM] 10. <胡韡薰> > [time=Sat, May 16, 2020 9:44 PM] 11. <黃安佑> > [time=Sat, May 16, 2020 11:41 PM] 12. <何承煜> > [time=Wed, May 20, 2020 11:54 AM] 13. <李弘唯> > [time=Wed, May 27, 2020 5:22 PM] #### 社長提供的測資: 無。 ### 參考解答(社長提供): #### Java: ```java= import java.util.*; //[C_ST11-易] 星號菱形輸出 //2019,08,26;19:15 public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); if (n % 2 == 0) n--; // 上半部 for (int i = 1, starCount = 1; i <= (n - 1) / 2; i++, starCount += 2) { for (int j = 1; j <= (n - starCount) / 2; j++) System.out.print(" "); for (int k = 1; k <= starCount; k++) System.out.print("*"); System.out.println(); } // 中間n顆星 for (int i = 1; i <= n; i++) System.out.print("*"); System.out.println(); // 下半部 for (int i = 1, starCount = n - 2; i <= (n - 1) / 2; i++, starCount -= 2) { for (int j = 1; j <= (n - starCount) / 2; j++) System.out.print(" "); for (int k = 1; k <= starCount; k++) System.out.print("*"); System.out.println(); } sc.close(); } } ``` ### 參考解答(社員提供): --- ### 5.<font color="#E6C35C">[C_ST62-易] 縮寫很方便</font> #### =>[題目連結](https://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=13600) #### 問題敘述: 很多人在寫英文的時候,都喜歡寫縮寫,通常寫縮寫都會拿第一個開頭的字來代替 。 像 United States of America , 大家就都習慣稱呼為 USA 。 請你寫一個程式幫忙找出縮寫 。 不過要注意的是,介係詞的部分我們通常就會直接忽略掉,像 of 我們就可以忽略他 。 所以在創造縮寫時,這一類的詞請直接忽略 。 所有測資介係詞部分都會以小寫開頭 , 其餘則以大寫開頭 。 然而字串中間的其他字母則沒有固定,大小寫都有可能 。 讀完所有測資後結束程式。 ### 完成者: 1. <社長> > [time=Fri, May 15, 2020 9:14 PM] 2. <李晨維> > [time=Sat, May 16, 2020 1:28 PM] 3. <吳冠毅> > [time=Sat, May 16, 2020 2:06 PM] 4. <郭浩雲> > [time=Sat, May 16, 2020 3:01 PM] > 重複輸入又害我 5. <陳宜俊> > [time=Wed, May 20, 2020 11:16 AM] 6. <吳品範> > [time=Wed, May 20, 2020 11:57 AM] 7. <張嘉元> > [time=Thu, May 21, 2020 1:31 PM] 8. <柯昀杰> > [time=Thu, May 21, 2020 2:08 PM] 9. <李弘唯> > [time=Sat, May 23, 2020 5:44 PM] 10. <胡韡薰> > [time=Sat, May 30, 2020 8:54 PM] > C寫字串真他媽麻煩 #### 前與現任社長提供的測資: ``` input: Li Ming ComPuter Programing Science club Jun Hsiang Is not a Handsome Boy So Sad (不要打我) (Juen Xiang==俊翔,這才是真正的羅馬拼音) ``` ``` output: LMCPS JHIHBSS ``` ### 參考解答(社長提供): #### C++: ```cpp= #include <iostream> #include <string> using namespace std; int main(){ string str; char temp; while(getline(cin,str)){ for(int i=0;i<str.size();i++){ temp=str.at(i); if(temp>='A' and temp <='Z' and (str.at((i>0)?i-1:i)==' ' or i==0)) cout << temp; } cout << endl; } return 0; } ``` ### 參考解答(社員提供): --- ### 6.<font color=#E6C35C>[C_ST94-中] 判別數字</font> #### =>[題目連結](https://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?a=10623) #### 問題敘述: 寫出一個程式,再輸入隨意一行英文及數字後,可以判別出該行有幾個英文字和數字。 ### 完成者: 1. <社長> > [time=Fri, May 15, 2020 9:36 PM] 2. <李晨維> > [time=Sat, May 16, 2020 1:49 PM] 3. <吳冠毅> > [time=Sat, May 16, 2020 2:30 PM] 4. <郭浩雲> > [time=Sat, May 16, 2020 3:21 PM] > 被空格害到 5. <柯昀杰> > [time=Sun, May 17, 2020 2:07 PM] 6. <張嘉元> > [time=Wed, May 20, 2020 11:20 AM] 7. <陳宜俊> > [time=Wed, May 20, 2020 11:28 AM] 8. <吳品範> > [time=Fri, May 22, 2020 2:29 PM] 9. <副社長> > [time=Sat, May 23, 2020 5:15 PM] 10. <胡韡薰> > [time=Sat, May 23, 2020 5:58 PM] #### 社長提供的測資: ``` input: Apo0jpmgIh9t309bu98yw0v9bvy83qv 9q2ybf95vln3nqv ``` ``` output: 30,16 ``` ### 參考解答(社長提供): #### C++: ```cpp= #include <iostream> #include <string> using namespace std; int main(){ string str; char temp; int numCount,charCount; while(getline(cin,str)){ numCount=0; charCount=0; for(int i=0;i<str.size();i++){ temp=str.at(i); if((temp>='a' and temp<='z') or (temp>='A' and temp<='Z')) charCount++; else if(temp>='0' and temp<='9') numCount++; } cout << charCount << "," << numCount << endl; } return 0; } ``` ### 參考解答(社員提供): --- ### 7.<font color=#E6C35C>[C_RU37-易] 彈珠的位置</font> #### =>[題目連結](https://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?a=19232) #### 問題敘述: 一彈珠沿x軸同向加速,每一秒鐘移動的距離為前一秒移動距離的2倍, 若第0秒時在座標3的位置, 第3秒在座標10的位置, 請問第t秒時的位置. ### 完成者: 1. <社長> > [time=Fri, May 15, 2020 10:14 PM] 2. <吳冠毅> > [time=Sat, May 16, 2020 2:55 PM] > 要夠大 3. <郭浩雲> > [time=Sat, May 16, 2020 7:02 PM] 4. <張嘉元> > [time=Sat, May 16, 2020 10:15 PM] 5. <陳宜俊> > [time=Tue, May 19, 2020 10:51 AM] 6. <李晨維> > [time=Tue, May 19, 2020 2:50 PM] > 過不了社長測資算過嗎XD 7. <柯昀杰> > [time=Tue, May 19, 2020 2:51 PM] > 社長提供的測資很可怕 8. <李弘唯> > 園長的測資是不合邏輯的喔 > [time=Tue, May 19, 2020 9:09 PM] 9. <吳品範> > [time=Sat, May 23, 2020 4:58 PM] 10. <胡韡薰> > [time=Sat, May 30, 2020 10:03 PM] > 錯得莫名其妙 只能代副社給的公式了XD #### 社長提供的測資: ``` input: 5 25 30 1000 1234 41 ``` ``` output: 33554434 1073741826 10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069378 295811224608098629060044695716103590786339687135372992239556207050657350796238924261053837248378050186443647759070955993120820899330381760937027212482840944941362110665443775183495726811929203861182015218323892077355983393191208928867652655993602487903113708549402668624521100611794270340232766099317098048887493809023127398253860618772619035009883272941129544640111837186 2199023255554 ``` > <font color="#FF7433">41是我的座號,所以很大(X </font> > [color=#d2ea69] > [name=社長] > 擔心看不到東西,怕爆 > [name=前社長] > 注意測資OUTPUT 有改喔 > [name=李弘唯(副社長)] ### 參考解答(社長提供): #### C++: ```cpp= #include <iostream> using namespace std; long disp(int t){ if (t == 1) return 1; else return 2 * disp(t - 1); } int main(){ int m,t; long origin=3,end; cin >> m; while (m--){ cin >> t; end = origin; for (int i = 1; i <= t; i++) end += disp(i); cout << end << endl; } return 0; } ``` #### Java: ```java= import java.util.*; //[C_RU37-易] 彈珠的位置 //2020/03/14;14:06 public class Main { public static long disp(int t) { if (t == 1) return 1; else return 2 * disp(t - 1); } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int m = sc.nextInt(); long origin = 3; long end; while (m-- > 0) { int t = sc.nextInt(); end = origin; for (int i = 1; i <= t; i++) end += disp(i); System.out.println(end); } } } ``` ### 參考解答(社員提供): --- ### 8.<font color="#FF7433">[C_AR137-中] 找出睡臥姿勢</font> #### =>[題目連結](https://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=22855) #### 問題敘述: 在一個 4X4 大小的囚房中,關著一個身高 3 的囚犯。這個囚犯因為後背受傷,所以睡覺時必定側臥且將雙手伸長,形成一個 3X2 的「 L 」形狀;但是囚房內經常會堆放一些不可移動的障礙物,所以這個囚犯必須在囚房內找出可以用「 L 」形姿勢睡臥的空間。 現在要你寫一個程式,幫這個囚犯找出共有幾個可以睡臥的姿勢。以下圖為例,黑色方塊表示障礙物,而這個囚犯能睡臥的的空間以白色空格表示,在圖中囚犯在上邊連續空白處有 1 個可睡臥空間,在下邊連續空白處有 2 個可睡臥空間。 ![](https://i.imgur.com/9sENB97.jpg) ### 完成者: 1. <社長> > [time=Sat, May 16, 2020 12:47 PM] 2. <副社長> > 我就低能。 > [time=Sun, May 17, 2020 7:38 PM] 3. <吳冠毅> > [time=Wed, May 20, 2020 10:36 AM] 4. <李晨維> > [time=Fri, May 29, 2020 9:06 PM] 5. <陳宜俊> > [time=Sat, May 30, 2020 1:57 AM] #### 社長提供的測資: 無。 ### 參考解答(社長提供): #### C++: ```cpp= #include <bits/stdc++.h> using namespace std; int main(){ int N = 4; int up, down, left, right; int up_2, down_2, left_2, right_2; int up_2_left, up_2_right, down_2_left, down_2_right; int right_2_up, right_2_down, left_2_up, left_2_down; int count = 0; int arr[N+4][N+4]; int temp; memset(arr, -1, sizeof(arr)); for (int i = 2; i <= N + 1; i++) for (int j = 2; j <= N + 1; j++){ cin >> temp; if(temp==1) arr[i][j]=-1; else arr[i][j]=temp; } for (int i = 2; i <= N + 1; i++){ for (int j = 2; j <= N + 1; j++){ if (arr[i][j] == -1) continue; else{ up = arr[i - 1][j]; down = arr[i + 1][j]; left = arr[i][j - 1]; right = arr[i][j + 1]; up_2 = arr[i - 2][j]; down_2 = arr[i + 2][j]; left_2 = arr[i][j - 2]; right_2 = arr[i][j + 2]; up_2_left = arr[i - 2][j - 1]; up_2_right = arr[i - 2][j + 1]; down_2_left = arr[i + 2][j - 1]; down_2_right = arr[i + 2][j + 1]; right_2_up = arr[i - 1][j + 2]; right_2_down = arr[i + 1][j + 2]; left_2_up = arr[i - 1][j - 2]; left_2_down = arr[i + 1][j - 2]; if (up == 0 && up_2 == 0){ if (up_2_left == 0) count++; if (up_2_right == 0) count++; } if (down == 0 && down_2 == 0){ if (down_2_left == 0) count++; if (down_2_right == 0) count++; } if (left == 0 && left_2 == 0){ if (left_2_up == 0) count++; if (left_2_down == 0) count++; } if (right == 0 && right_2 == 0){ if (right_2_up == 0) count++; if (right_2_down == 0) count++; } } } } cout << count << endl; return 0; } ``` ### 參考解答(社員提供): --- ### 9.<font color="#FF7433">[C_AR138-中] 斜行矩陣</font> #### =>[題目連結](https://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=22871) #### 問題敘述: 斜行矩陣是一個矩陣,其中每個 cell 都填滿整數,且每個整數以斜行的方式排列。下圖為二個 size = 5 的斜行矩陣。圖 (a) ,數字由 1 開始,以正斜的方向排列,而圖 (b) 則是一個反斜的斜行矩陣。 ``` 011 007 004 002 001 016 012 008 005 003 020 017 013 009 006 023 021 018 014 010 025 024 022 019 015 (a) 正斜矩陣 ``` ``` 001 002 004 007 011 003 005 008 012 016 006 009 013 017 020 010 014 018 021 023 015 019 022 024 025 (b) 反斜矩陣 ``` 請寫一個程式,接受輸入矩陣大小及排列方式,並將斜行矩陣印出。 ### 完成者: 1. <社長> > [time=Sat, May 16, 2020 2:05 PM] 2. <副社長> > 倒吃甘蔗就是爽。 > [time=Sat, May 16, 2020 11:37 PM] 3. <郭浩雲> > [time=Sun, May 17, 2020 3:59 PM] > 爽啦 4. <吳冠毅> > [time=Sat, May 23, 2020 5:25 PM] > 段考前寫程式,怕 > 眼睛蓋起來,忘記排名及分數就不會怕了 > [name=前社長] 5. <陳宜俊> > [time=Sat, May 30, 2020 7:19 PM] 6. <李晨維> > [time=Sat, May 30, 2020 8:42 PM] #### 社長提供的測資: 無。 ### 參考解答(社長提供): #### Java: ```java= import java.util.*; //[C_AR138-中] 斜行矩陣 //2019,08,28;21:17 public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int x = sc.nextInt(); int y = sc.nextInt(); // 矩陣外擴一環 int[][] arr = new int[x + 2][x + 2]; // 整個陣列初始值皆為-1以便判斷矩陣邊界 for (int i = 0; i < arr.length; i++) Arrays.fill(arr[i], -1); // 原矩陣範圍內初始值設為0 for (int i = 1; i <= x; i++) for (int j = 1; j <= x; j++) arr[i][j] = 0; // 預設為反斜矩陣 for (int j = 1, k = 1, i = 1, tempj = 0, count = 0, tempi = 1; true;) { // tempi預設為1代表剛開始皆從矩陣第一列開始填值 // tempj暫時紀錄每一次j的初始位置 i = tempi; tempj = j; do { // 斜向填值,直到遇到邊界 arr[i][tempj] = k++; i++; tempj--; } while (arr[i][tempj] != -1); // 每完成一斜行紀錄一次 count++; // 當count<x 繼續向右遞進 // 當count>x時,代表已走到橫下標,開始向縱下標方向遞進 if (count < x) j++; else tempi++; // 若k>x^2代表矩陣已經填滿 if (k > x * x) break; } // 若y為2則照原結果印出,若不然則左右顛倒印出 if (y == 2) { for (int i = 1; i <= x; i++) { for (int j = 1; j <= x; j++) { if (j == 1) System.out.printf("%03d", arr[i][j]); else System.out.printf(" %03d", arr[i][j]); } System.out.println(); } } else { for (int i = 1; i <= x; i++) { for (int j = x; j >= 1; j--) { if (j == x) System.out.printf("%03d", arr[i][j]); else System.out.printf(" %03d", arr[i][j]); } System.out.println(); } sc.close(); } } } ``` ### 參考解答(社員提供): --- ### 10.<font color="#f00">[C_AR78-易] 最佳得分點</font> #### =>[題目連結](https://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?a=2333) #### 問題敘述: 2011 年,世界舉行全球足球賽,地點正好位於台北小巨蛋,台灣隊伍想到一個必勝的方法,把足球場化為座標格,離球框最近的位置就是得分的關鍵,只要找到那黃金射門點,就一定可以得分,試求出最佳得分點。 ![](https://i.imgur.com/7iDDy6z.jpg) ### 完成者: 1. <社長> > [time=Sat, May 16, 2020 12:52 PM] 2. <副社長> > 倒吃甘蔗的紅微幅攝大帥哥。 > [time=Sat, May 16, 2020 2:38 PM] 3. <郭浩雲> > [time=Tue, May 26, 2020 1:30 PM] > 這題怎麼會是最難的?我覺得8看起來比較難🤔 > ***都不難*** > [name=社長] 4. <吳冠毅> > [time=Fri, May 29, 2020 11:43 PM] > 感謝上帝,可以洗洗睡了 5. <陳宜俊> > [time=Sat, May 30, 2020 10:48 PM] > 終於寫完了 #### 社長提供的測資: 無。 ### 參考解答(社長提供): #### C++: ```cpp= #include <bits/stdc++.h> #define MAX 100 using namespace std; typedef struct node{ double d; int x; int y; } pos; bool cmp(pos a,pos b){ if(a.d==b.d){ if(a.x==b.x) return (a.y<b.y); else return (a.x<b.x); } else return(a.d<b.d); } pos arr[MAX]; int main(){ int x,y,j=0,goal_x,goal_y; while(cin >> x >> y){ if((x==-1 and y==-1)or j>=MAX) break; arr[j].x=x; arr[j].y=y; j++; } cin >> goal_x >> goal_y; for(int i=0; i<j; i++) arr[i].d=pow(arr[i].x-goal_x,2)+pow(arr[i].y-goal_y,2); sort(arr,arr+j,cmp); double min_d=arr[0].d; for(int i=0; i<j; i++){ if(arr[i].d==min_d) cout << arr[i].x << " " << arr[i].y << endl; else break; } return 0; } ``` ### 參考解答(社員提供): --- ## 統計表 ### <font color="#3AAA">一至四題 | 第一題 | 第二題 | 第三題 | 第四題 | | ------ | ------ | ------ | ------ | | 16 | 14 | 12 | 13 | </font> ### <font color="#E6C35C">五至七題 | 第五題 | 第六題 | 第七題 | | ------ | ------ | ------ | | 10 | 10 | 10 | </font> ### <font color="#FF7433">八與九題 | 第八題 | 第九題 | | ------ | ------ | | 5 | 6 | </font> ### <font color="#f00">第十題和全對者 | 第十題 | 全對者 | | ------ | ------ | | 5 | 4 | </font> --- > [time=Sun, May 31, 2020 11:01 PM] ###### tags: `社內考試`