[介紹] 線上解題系統 OnlineJudge

簡介 Online Judge 通常會簡稱 Judge 或者是 OJ 。 那 Judge 是什麼呢? 你可以想成它是一個練習 程式解題 的平臺, 有 題目敘述 、 輸入 、 輸出 , 有時候甚至還會有 測資限制 或是 時間限制 ! 什麼是程式呢? 就是把生活中遇到的問題, 嘗試用數學、邏輯,甚至是演算法,將問題簡單化! 個人認為解題就有點呆板了! 因為輸入、輸出,已經被限制了, 所以產生的程式可能大同小異, 或者是不用某種特定方法就逾時(後面會介紹),解不出來 . . . 推薦的 Online Judge TCGS Green Judge 臺中女中程式解題系統 此 Judge 是由臺中女中所架的,掛在 tcgs.tc.edu.tw 的 Domain Name 上。 題目分類清楚 若基礎題庫的五十題做完,就有一定的程式基礎囉! ZeroJudge 高中生程式解題系統 較 Green Judge , ZeroJudge 的題目分類較雜亂 可以利用 章魚教學網站 的題庫分類系統,來選取自己需要練習的題型(左邊選單 –> 資訊學科培訓 –> zerojudge 題目分類) 如果你的英文很好,再來的資源很適合你!...

November 7, 2020 · 1 min · CPP

[C++] 期中考第三題

期中考第三題:兌換瓶子 每 7 個喝完的瓶子,可以再兌換一瓶 drink 代表還沒喝的,bottle 代表喝完的瓶子 先把一開始的飲料都喝完 int bottle = drink; 如果一開始的飲料大於等於 7 瓶,就繼續兌換(while 迴圈) 每兌換一次就喝掉 1 瓶,兌換 n 次就喝掉 n 瓶 把上一次喝掉的瓶子跟不足兌換的瓶子收集起來,再拿去兌換 最後不夠兌換(瓶子< 7),就結束了(跳出 while 迴圈) 這時候的 bottle 就會是全部喝完的瓶子 TCGS Judge 類似題目:TCGS a041:收集冰棒棍 #include <iostream> using namespace std; int main() { int drink; while(cin>>drink){ int bottle = drink; while(drink >= 7){ bottle += drink/7; drink = drink/7 + drink%7; } cout<<bottle<<endl; } }

November 6, 2020 · 1 min · CPP

[C++] 期中考第二題

期中考第二題:提款卡密碼 a b c d . . . 照順序排序,計算他們相間的距離 將上述做法具現化,可以利用 ASCII 將兩字元的 ASCII 相減,就是他們之間的距離 因為差有可能為負,且距離不為負,所以加上 <cmath> 的 abs() 絕對值 超過 9 之後,則取個位數字,可以利用 % 來實現 ASCII 欲做運算需將它轉形態(cast),所以利用 int 轉為整數形態 for 迴圈遍歷 word 中每一個字元,且索引 i 與 i+1 的值 注意上述做法 i 會跑到 < length-1 ZeroJudge 類似題目:Zerojudge a065:提款卡密碼 參考程式碼: #include <iostream> #include <cmath> using namespace std; int main() { string word; cin>>word; int length = word.size(); for(int i=0;i<length-1;i++){ cout<<int ( abs(word[i+1]-word[i]) ) % 10; } cout<<endl; }

November 6, 2020 · 1 min · CPP

[C++] 進制轉換

可能是因為高中課業繁忙吧,當初覺得 STL 對我來說太多餘了, 所以就沒興趣學了,也就放掉了。 這次重拾 STL ,先從簡單的 vector 來練練手, 並用進制轉換當做主題! ※ STL 是 Standrad Template Library 的縮寫 十進位轉二進位: 以二進位定義計算 並將每次的結果插入 vector 的起點(後面解釋為什麼是 insert ) 傳入:整數(int) 回傳:陣列(vector) vector<int> baseBinary(int number){ vector<int> result; vector<int>::iterator it; while(number>0){ it = result.begin(); if (number%2==0) result.insert(it,0); else result.insert(it,1); number /= 2; } return result; } 印出二進位: 因為二進位算完後,答案是結果往前推,所以用的是 insert 這樣一來陣列遍歷就從 begin 就好了 iterator 有點像是 for vector 的 指標 ,想要知道其中的值要 取值 (*) 傳入:陣列(vector) 回傳:無(void) void print(vector<int> number){ vector<int>::iterator it; for(it=number....

November 4, 2020 · 1 min · CPP

[Python] 估計圓周率

利用圓的定義以及圓跟正方形的關係, 進而推算出圓周率! import random times = 99999 circle = 0 for _ in range( times ) : x = random.uniform(0.0,1.0) y = random.uniform(0.0,1.0) distance = x**2 + y**2 if distance < 1 : circle += 1 pi = 4 * circle / times print(pi)

November 4, 2020 · 1 min · CPP