|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
最近在肝CSP-J第二题(原题链接:https://www.luogu.com.cn/problem/P8814?contestId=90215)
我列出了这个方程组(其中e,d,n已知,要求求a, b的正整数解,无解输出 -1):
- {e * d - 2 = n - (a + b)
- {n = a * b
复制代码
稍微简化一下,得:
- {k = e * d - 2 (e, d都知道,k就知道)
- {k = n - (a + b)
- {n = a * b
复制代码
如果你还不知道我在说什么,那就回答这个问题:
- 已知k, n 的值,求出a, b 的正整数解,无解输出 -1
- {k = n - (a + b)
- {n = a * b
复制代码
请教请教鱼C的大佬,感谢
- #include <stdio.h>
- int main(void) {
- int e, d, n;
- // int a, b;
- scanf("%d%d%d", &e, &d, &n); // 输入 e, d, n
- // e * d - 2 = n - (a + b)
- // n - (e * d - 2) = (a + b)
- int l = n - (e * d - 2); // 先算出等式左边
- // 两个正整数的和,不可能是0,也不可能是负数
- // 注意,l的值是1也不行,两个正整数的和是1 ?
- if(l <= 1) {printf("-1\n"); return -1;}
- for(int i = 1; i < l; ++i) {
- printf("a=%d, b=%d\n", i, l - i);
- }
- return 0;
- }
复制代码
|
|