加法進位次數
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 << endlif、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