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

来源:互联网 发布:查询域名对应的ip地址 编辑:程序博客网 时间:2024/06/05 07:45

题目:



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

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

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

设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;}

2 0
原创粉丝点击