题意:至少加几使得n的位数之和小于等于s。
题解:可以发现,当n不断加一时位数之和一般是增加的,只有增加到10的倍数位数之和才会减小,所以每次增加到离n最近的10的倍数,得出最小值。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int f(ll n)
{
int res = 0;
while (n)
res += n % 10, n /= 10;
return res;
}
int main()
{
int t, s;ll n;cin >> t;
while (t--){
cin >> n >> s;
if (f(n) <= s) cout << 0 << endl;
else{
ll ans = 0, tt = 1;
while (f(n) > s){
if (n % 10 == 0) n /= 10, tt *= 10;
else n++, ans += tt;
}
cout << ans << endl;
}
}
}