iT邦幫忙

2026 iThome 鐵人賽

DAY 2
0
Software Development

30天ITSA挑戰:從看不懂題目到解出6題系列 第 2

Day 2|ITSA 題目到底在考什麼?先學會「看題目」

  • 分享至 

  • xImage
  •  

昨天決定開始 30 天 ITSA 挑戰之後,今天終於要正式開始刷題了。

但我發現一個很現實的問題:

我連題目都還沒看懂,要怎麼寫?

以前看到 ITSA 題目,我很容易直接跳去看範例輸入、範例輸出,然後開始想:

「這到底要怎麼寫???」

結果常常還沒開始寫,就已經先放棄了。

所以今天決定先不急著寫程式。

第一步:學會看題目。

一、程式題其實都可以拆成三件事情

看到一個 ITSA 題目,我現在會先問自己三個問題:

① 題目給我什麼?

也就是 Input(輸入)。

例如:

輸入一個整數 N

代表程式會拿到一個數字。

② 題目要我做什麼?

這就是題目的核心要求。

例如:

請判斷 N 是奇數還是偶數。

那我就知道:

輸入:一個數字

處理:判斷奇偶

③ 最後要輸出什麼?

也就是 Output(輸出)。

例如題目說:

如果 N 是奇數,輸出 Odd;如果 N 是偶數,輸出 Even。

那麼整題就可以整理成:

Input

一個整數 N

判斷 N 是奇數還是偶數

Output

Odd 或 Even

突然就沒有那麼可怕了。

二、先不要急著想「程式碼」

這是我今天覺得自己最需要改掉的習慣。

以前看到題目:

「給你 N,請計算……」

我就會直接開始想:

int n;
cin >> n;

然後寫到一半就卡住。

但其實更好的方法應該是:

Step 1:先用自己的話講一次題目

例如:

「喔~就是給我一個數字,然後我要判斷它是不是偶數。」

Step 2:找出 Input
N
Step 3:找出 Output
Odd / Even
Step 4:想「怎麼解」

例如:

N ÷ 2 的餘數

如果餘數是 0,就是偶數。

如果不是 0,就是奇數。

最後才開始寫程式。

三、範例:把一題簡單的題目拆開

假設今天看到這題:

輸入一個整數 N,請判斷 N 是奇數還是偶數。如果是奇數輸出 Odd,如果是偶數輸出 Even。

看到這種題目,先不要寫程式。

我會先整理成:

📥 Input
一個整數 N
🔧 Process

判斷:

N % 2

如果:

N % 2 == 0

代表是偶數。

否則就是奇數。

📤 Output
Odd

Even

這時候才開始寫程式:

#include
using namespace std;

int main() {
int N;
cin >> N;

if (N % 2 == 0) {
    cout << "Even";
} else {
    cout << "Odd";
}

return 0;

}
四、原來 ITSA 題目沒有想像中那麼可怕?

我以前常常覺得:

「這題好難。」

但今天開始發現,有時候不是題目真的很難,而是我看到一大段文字之後,不知道該把資訊分成哪些部分。

所以之後看到 ITSA 題目,我想先強迫自己做這件事:

┌──────────────┐
│ 題目在說什麼? │
└──────┬───────┘

📥 Input

🔧 Process

📤 Output

先把題目翻譯成:

「給我什麼 → 我要做什麼 → 我要印什麼」

再開始寫程式。

五、今天的新習慣:題目三問

從今天開始,每遇到一題 ITSA,我都會先問:

❶ 給我什麼?

Input 是什麼?

❷ 要我做什麼?

我要對資料進行什麼處理?

❸ 要我印什麼?

Output 的格式是什麼?

只要這三個問題還答不出來,就先不要寫程式。

今日小結

今天沒有刷很多題,甚至沒有碰什麼很難的語法。

但我覺得這可能是開始刷題之前,很重要的一步。

因為寫程式不只是把語法背起來。

更重要的是:

看懂問題 → 拆解問題 → 想出方法 → 寫成程式。

以前的我比較像是:

題目 → 直接開始亂寫 → 錯誤 → 💀

希望之後可以慢慢變成:

題目 → 分析 → 拆解 → 解法 → 寫程式 → Debug → AC 🎉


上一篇
30 天 ITSA 挑戰,從「看不懂題目」開始
下一篇
Day3
系列文
30天ITSA挑戰:從看不懂題目到解出6題3
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言