题目描述
给定一个整数n,每次操作你能让n的值增加1。问至少需要多少次操作才能使得整数n的各位数字之和不超过s?
输入格式
多组测试数据。
第一行,一个整数T,表示有T组测试数据。1<=T<=20000。
接下来有T行,每行2个整数n和s。1<=n<=10^18。 1<=s<=162。
输出格式
共T行,每行一个整数。
输入/输出例子1
输入:
5
2 1
1 1
500 4
217871987498122 10
100000000000000001 1
输出:
8
0
500
2128012501878
899999999999999999
我的代码:
#include <bits/stdc++.h>
using namespace std;
int fx(long long x)
{
int sum=0;
for(;x>0;x/=10)sum+=x%10;
return sum;
}
long long fy(long long x)
{
long long p=1;
while(x%10==0)
{
x/=10;
p*=10;
}
return p*(10-x%10);
}
long long n,s,ans,x,t;
int main()
{
cin>>t;
for(;t>0;t--)
{
ans=0;
cin>>n>>s;
while(fx(n)>s)
{
x=fy(n);
ans+=x;
n+=x;
}
cout<<ans<<endl;
}
return 0;
}