加法進位次數

1.0s 256M

小安正在練習直式加法。每次兩個位數相加,如果總和達到 \(10\) 或以上,就會向左邊的下一位進位。

給你多組非負整數 \(a\) 和 \(b\),請對每一組輸出計算 \(a + b\) 時總共發生幾次進位。輸入以 0 0 結束,這一組不需要輸出答案。

語法限制

本題採用 Level 0 第三單元的語法限制。你可以使用 if、else、迴圈、比較運算、邏輯運算、整數變數、cin、cout 與 cout << endl;但不可使用陣列或容器,也不可使用 main 以外的任何函式(包含內建函式與自定義函式)。其中 endl 只有作為輸出換行用法時允許,不能寫成函式呼叫。

評測時會自動檢查你的程式碼,違反限制會直接得到 Wrong Answer,回饋訊息會顯示「語法限制未通過」以及違規的位置。

點我展開:本題允許與禁止的語法清單

允許使用:

  • #include <iostream> 或其他一般 include(但不需要額外標頭)
  • using namespace std;
  • int main() 主函式與 return 0;
  • 整數、布林與字元變數,例如 int、long long、bool、char
  • cin >> 讀入、cout << 輸出,可以使用 cout << endl
  • if、else、for、while
  • 算術、比較與邏輯運算子,例如 +、-、*、/、%、<、<=、==、&&
  • 指派與遞增遞減,例如 =、+=、++、--
  • 註解(// 與 /* */)

禁止使用(列出常見項目):

  • 陣列與索引語法 []
  • vector、array、string、deque、map、set 等容器或類似工具
  • new、delete 等動態配置語法
  • main 以外的任何函式呼叫或函式宣告,包含 max、min、abs、sqrt、pow、sort、swap、getline、printf、scanf
  • #define 等非 include 的前置處理指令

輸入格式

輸入有若干行,每行包含兩個非負整數 \(a\) 和 \(b\)。

最後一行一定是 0 0,代表輸入結束,這一行不需要輸出答案。

限制

  • 結束行 0 0 之前至少有 \(1\) 組資料,最多有 \(100\) 組資料
  • 每組資料都滿足 \(0 \le a, b \le 1000000000\)
  • 除了最後一行以外,不會出現 \(a = 0\) 且 \(b = 0\) 的資料
  • 記憶體限制為 \(256\) MB

輸出格式

對於每一組資料,輸出一行整數,代表計算 \(a + b\) 時發生的進位次數。

範例輸入 1

95 17
123 456
999 1
0 0

範例輸出 1

2
0
3

範例輸入 2

0 7
101 909
0 0

範例輸出 2

0
2

題目頁說明

快速鍵

主要功能

  • 範例測試 — 執行題目附帶的範例測資並自動比對預期輸出。
  • 自訂測試 — 自己貼 stdin 執行程式。可勾選「與預期輸出比對 (diff)」做行對行比對。
  • 模板 — 貼上你在個人資料設定的預設程式碼模板。
  • 協作 — 與其他同學共筆編輯這題的程式碼。
  • 自動草稿 — 編輯器內容每 1.5 秒自動存到瀏覽器(per 帳號 / 題目 / 語言)。
  • 提交 — 把程式碼交給 judge 評測,回傳 AC / WA / TLE 等結果。

限制

  • 程式碼最多 65,536 字元
  • 自訂測試 stdin 與預期輸出各最多 1 MB (約 100 萬字元)
  • 自訂測試與範例測試共用一個沙箱,每人約 3 秒 1 次 (範例測試 1 秒 1 次)
  • 自訂測試與範例測試都有 15 秒 牆鐘上限(正式評測仍依題目原本時限)
  • 互動題不提供自訂測試(無法模擬與 judge 互動)。
  • 提交評測本身沒有 rate limit,但同題短時間內多次提交會被視為刷分。