您的位置:首页 > 其它

UVA - 10673 Play with Floor and Ceil(手动解方程)

2016-08-19 19:49 531 查看
题目:





我看网上基本上都是用欧几里得做的。。。

好了,说正事,就从欧几里得的理论基础开始说起——带余除法

算了,还是看百科吧点击打开百科

设s=x/k,那么,x=s*k+t,0≤t<k

那么方程化为s*k+t=p*k+q*(k+(t>0))

如果t=0,那么s=p+q,取p=s,q=0

如果t>0,那么s*k+t=(p+q)*k+q,取p=s-t,q=t

所以上面2种情况是一样的。

代码:

#include<iostream>
#include<stdio.h>
using namespace std;

int main()
{
int n, x, k;
scanf("%d", &n);
while (n--)
{
scanf("%d%d", &x, &k);
printf("%d %d\n", k - x%k, x%k);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: