🧮 U5 數學規則・知識點 K15

位數拆解

把數字一位一位拆開,再計算或重組

B5-02-Digits
練習平台
點標題可以展開或收合

1學習目標

  • 會把一個數字拆成一位一位,再個別處理。
  • 會用兩種方法拆位數:當成文字逐字取出,或用除以 10 的餘數。
  • (延伸)會把拆開的位數重新組合成新的數字。

2概念說明

「12345 的每一位加起來是多少?」要回答這個問題,得先把 12345 拆成 1、2、3、4、5。有兩種方法:

方法一:當成文字,一個字一個字取出

把數字看成字串「12345」,用 K12 的逐字元走訪,第 i 個字元就是第 i 位數字。取出來的是文字,要當成數字來加。

方法二:用數學,一次拿掉一位

動作12345結果
除以 10 的餘數 → 個位數12345 除以 10 的餘數5
除以 10 後無條件捨去 → 拿掉個位數12345 ÷ 10 無條件捨去1234

重複這兩個動作,直到數字變成 0:5、4、3、2、1 就一位一位被拿出來了。因為事先不知道要重複幾次,所以用「重複直到 數字 = 0」。

📌 兩種方法都可以

方法一和 K12 的字串技巧一樣,比較直覺;方法二是數學上的標準做法,之後遇到更多數字題會常用到。平台上的範例答案用的是方法一。

3示範題:跟著一步一步做(1 題)

先讀題,再一步一步點開來看。建議每看完一步,就先自己在平台上試著寫寫看。

示範題

位數和

L2|進階MATH01-006
給定一個非負整數 N,請計算它的每一位數字總和。
輸入
輸入一個非負整數 N。
輸出
輸出一個整數,代表 N 的位數和。
範例1
輸入
12345
輸出
15
第 1 步:讀題,找出輸入和輸出
  • 輸入:一個非負整數 N,例如 12345。
  • 輸出:每一位數字的總和,例如 15。
第 2 步:方法一,當成文字逐字取出
詢問並等待 → N(先變成文字)
總和 設為 0
i 從 1 數到 N 的長度:
    總和 設為 總和 +(N 的第 i 個字元,轉成數字)
說出 總和

取出來的是文字「3」,要先轉成數字 3 才能相加:

  • Blockly:寫成「(第 i 個字元)− 0」,減 0 會讓文字變成數字。如果直接用「+」,數字加文字會被接起來,0 +「3」會變成「03」。另外,要先用「字串組合」把答案和空字串接起來,確保 N 是文字(K12 說明過原因)。
  • Scratch:「+」積木會自動把文字「3」當成數字 3,直接相加就可以。
第 3 步:方法二,用餘數一位一位拿掉
詢問並等待 → N
總和 設為 0
重複直到 N = 0:
    總和 設為 總和 +(N 除以 10 的餘數)
    N 設為 N ÷ 10 無條件捨去
說出 總和

用 12345 走一次:

這一輪開始時的 N取出的個位數總和
1234555
123449
123312
12214
1115
0(停止)-15
第 4 步:對照範例答案

按「載入範例」,範例答案用的是方法一。你可以兩種都寫寫看,比較哪一種比較好理解。

⚠️ 常見錯誤
  • 方法一沒有把字元轉成數字(Blockly):總和會變成「012345」這種接在一起的文字,要先「− 0」再相加。
  • 方法二忘了無條件捨去:12345 ÷ 10 = 1234.5,如果不捨去,N 永遠不會剛好變成 0,迴圈停不下來。

4延伸挑戰(1 題)

核心題都會了嗎?這些題目需要把好幾個技巧組合起來,想挑戰的話可以試試看。

🚀 數字反轉 L3|挑戰
挑戰重點:把數字反轉,例如 12340 → 4321。方法一:像 K12 反轉字串一樣倒著接,最後再把結果轉成數字,開頭的 0 就會消失。方法二:每取出一位,就讓「結果 = 結果 × 10 + 這一位」。
給定一個非負整數 N,請將它的數字順序反轉後輸出。反轉後前導 0 不需要保留。
輸入
輸入一個非負整數 N。
輸出
輸出一個整數,代表反轉後的數字。
範例1
輸入
12340
輸出
4321
💡 需要提示嗎?
用上一題的方法逐位取出數字,每取出一位就把結果×10 再加上這一位。

5自我檢核

學完之後,檢查看看你能不能做到這些事。有做不到的,就回到上面對應的地方再看一次。

  • 我會把數字當成文字,逐字取出每一位。
  • 我會用除以 10 的餘數取出個位數,並用無條件捨去拿掉個位數。
  • 我知道什麼時候要用「重複直到」而不是「重複 N 次」。
  • 我能說出兩種拆位數方法各自的做法。