给定两个正整数 A≥B,我们在计算 A−B 的时候,从个位开始依次对每一位做减法。当 A 的某位数字 a 比 B 的对应位数字 b 小的时候,A 就需要向高位借 10,然后计算 10+a−b。
本题就请你写程序统计一次减法中到底做了多少次借位操作。
输入格式:
输入在两行中先后给出两个正整数 A 和 B,满足 0 < B ≤ A ≤ 1010000。
输出格式:
在一行中输出计算 A−B 过程中借位操作的次数。
输入样例:
92338249361576354802
88915368421673890711
输出样例:
10
参考代码
#include<bits/stdc++.h>
using namespace std;
int main(){
string s, t;
cin >> s >> t;
t = string(s.size()-t.size(), '0') + t;//t位数比s少,用0补齐
int res = 0;//次数
int flag = 0;//记录上一位要不要借位
for(int i = s.size()-1; i>=0; i--){
if(s[i]-flag < t[i]) res++, flag = 1;//需要借位
else flag = 0;
}
cout << res;
return 0;
}