# 0920 第一次社課 :::info 盡量**先想過一次**,如果真的想不出來,再參考解答 **不要複製貼上程式碼**,要多練習才會進步喔 ! 好啦但還是希望有人會看 TAT 我寫得很辛苦 ::: **上課內容**:基礎I/O、變數、運算子 ~~這次的題目根本就是挑戰數字敏銳度~~ ### [zj a001 哈囉](https://zerojudge.tw/ShowProblem?problemid=a001) **題目簡述:** 寫一個程式,可以讀入指定的字串,並且輸出指定的字串。 例如:輸入字串 "world",輸出 "hello, world"。 **程式碼:** ```cpp= #include <iostream> //標頭檔,這個標頭檔管輸入與輸出 using namespace std; //使用命名空間 std //程式,啟動!! int main() { //0. 大括號記得下放 //1. 宣告一個string(字串),命名為str string str; //2. 輸入string,並存進str cin >> str; //3. 輸出"hello, " + str (輸入的內容) cout << "hello, " << str << endl; return 0; // main 回傳 0,程式結束 } ``` --- ### [zj a002 簡易加法](https://zerojudge.tw/ShowProblem?problemid=a002) **題目簡述:** 請寫一個程式,讀入兩個數字,並求出它們的和。 例如:輸入 3、4,輸出 7。 **程式碼:** ```cpp= #include <iostream> using namespace std; int main() { int a, b; cin >> a >> b; cout << a + b << endl; return 0; } ``` --- ### [zj d049 中華民國萬歲!](https://zerojudge.tw/ShowProblem?problemid=d049) **題目簡述:** 請寫一程式,將輸入的西元年份轉換成民國年份後輸出。 例如:輸入 2023,輸出 112。 > 小提示: > 民國年 = 西元年 - 1911 **程式碼:** ```cpp= #include <iostream> using namespace std; int main() { int y; cin >> y; cout << y - 1911 << endl; return 0; } ``` --- ### [zj d827 買鉛筆](https://zerojudge.tw/ShowProblem?problemid=d827) **題目簡述:** 鉛筆一支 5 元,一打 50 元。 幫班上每位同學買一枝鉛筆,請問要多少錢? 輸入班上同學人數,輸出所需的錢有多少。 例如:輸入 42,輸出 180。 > 小提示: > 利用運算子 「/」「%」來計算 > 42 = 12 * 3 + 6 > /:取商 > %:取餘數 :::spoiler **程式碼:** ```cpp= #include <iostream> using namespace std; int main() { int n; cin >> n; cout << (n / 12) * 50 + (n % 12) * 5 << endl; return 0; } ``` ::: --- ### [zj d063 0與1](https://zerojudge.tw/ShowProblem?problemid=d063) **題目簡述:** 輸入 0 或 1,把 1 變成 0、0 變成 1。 > 小提示: > 0 = - 0 :::spoiler **程式碼:** ```cpp= #include <iostream> using namespace std; int main() { int n; cin >> n; cout << -n + 1 << endl; return 0; } ``` ::: <br> :::warning 經驗談與垃圾話: 我覺得這個題目的想法非常實用,我現在解題偶爾也會用到 當然你也可以用 if / else 做這題,不過能用運算子完成的事,為什麼要這麼麻煩呢 ? ::: --- ### [zj d073 分組報告](https://zerojudge.tw/ShowProblem?problemid=d073) **題目簡述:** 分組依座號順序,每 3 個人一組。 例如:1、2、3 為第一組,4、5、6 為第二組……以此類推。 輸入同學的座號,輸出他在哪一組。 例如:輸入 7,輸出 3。 > 小提示: > 0 = 3 * 0 + 0 > 1 = 3 * 0 + 1 > 2 = 3 * 0 + 2 > 3 = 3 * 1 + 0 > 4 = 3 * 1 + 1 > 5 = 3 * 1 + 2 :::spoiler **程式碼:** ```cpp= #include <iostream> using namespace std; int main() { int n; cin >> n; cout << (n - 1) / 3 + 1; return 0; } ``` ::: <br> :::warning 經驗談與垃圾話: 我覺得這個題目的想法也非常實用,我現在解題偶爾也會用到 當然你也可以用 if / else 做這題,不過能用運算子完成的事,為什麼要這麼麻煩呢 ? ::: --- ### [zj d050 妳那裡現在幾點了](https://zerojudge.tw/ShowProblem?problemid=d050) **題目簡述:** 台灣的時間比美國山區時間快 15 小時。 寫一個程式,輸入台灣時間後,算出美國山區時間。 例如:輸入 21,輸出 6。 > 小提示: > 台灣比美國快 15 小時,可以理解為美國比台灣慢 9 小時 :::spoiler **程式碼:** ```cpp= #include <iostream> using namespace std; int main() { int n; cin >> n; cout << (n + 9) % 24 << endl; return 0; } ``` ::: <br> :::warning 經驗談與垃圾話: 其實,這題我一開始不是這樣寫的……我用了奇怪的三元運算子 三元運算子是一個逃避 if / else 的酷語法,通常可以讓程式更簡短 但我後來發現上面的寫法更簡潔 ~~教學真的翻車了~~ 底下附上我奇怪的寫法 ::: :::spoiler **奇怪的程式碼:** ```cpp= #include <iostream> using namespace std; int main() { int n; cin >> n; cout << ((n - 15 > 0)? n - 15 : n + 9) % 24 << endl; return 0; } ``` ::: ---
×
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