例题7-3 分数拆分 UVa10976

来源:互联网 发布:软件开发模版 编辑:程序博客网 时间:2024/04/30 05:36

1.题目描述:点击打开链接

2.解题思路:根据题目描述,可以解出来y的范围是1≤y≤2k。进而可以求出x=ky/(y-n)。注意x要大于0且是整数。

3.代码:

#define _CRT_SECURE_NO_WARNINGS #include<iostream>#include<algorithm>#include<string>#include<sstream>#include<set>#include<vector>#include<stack>#include<map>#include<queue>#include<deque>#include<cstdlib>#include<cstdio>#include<cstring>#include<cmath>#include<ctime>#include<functional>using namespace std;#define N 50000int u[N], v[N];int main(){//freopen("t.txt", "r", stdin);int n;while (~scanf("%d", &n)){int cnt = 0;int len = 2 * n;for (int y = 1; y <= len; y++){if (y - n > 0 && n*y % (y - n) == 0){int x = n*y / (y - n);u[cnt] = x, v[cnt++] = y;}}printf("%d\n", cnt);for (int i = 0; i < cnt; i++)printf("1/%d = 1/%d + 1/%d\n", n, u[i], v[i]);}return 0;}

0 0
原创粉丝点击