链接
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1614
题解
当
k
∣
x
k|x
k∣x时,可以直接输出
p
=
k
,
q
=
0
p=k,q=0
p=k,q=0
当
k
̸
∣
x
k\not | x
k̸∣x时,
⌈
x
k
⌉
=
⌊
x
k
⌋
+
1
\lceil\frac{x}{k}\rceil=\lfloor\frac{x}{k}\rfloor+1
⌈kx⌉=⌊kx⌋+1
所以
x
=
(
p
+
q
)
⌊
x
k
⌋
+
q
x=(p+q)\lfloor\frac{x}{k}\rfloor+q
x=(p+q)⌊kx⌋+q
因为
x
=
k
⌊
x
k
⌋
+
(
x
m
o
d
  
k
)
x=k\lfloor\frac{x}{k}\rfloor+(x\mod k)
x=k⌊kx⌋+(xmodk)
所以可以直接令
q
=
x
m
o
d
  
k
,
p
=
k
−
q
q=x\mod k,p=k-q
q=xmodk,p=k−q即可
代码
//数学休闲题
#include <bits/stdc++.h>
#define ll long long
int main()
{
ll N, K, T;
scanf("%lld",&T);
while(T--)scanf("%lld%lld",&N,&K), printf("%lld %lld\n",K-N%K,N%K);
return 0;
}