欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

UVA - 10976 - Fractions Again?!

程序员文章站 2022-06-08 12:26:29
...

题目传送门

/*
	题目大意:就是把一个数的倒数拆分成两个分数的和
	暴力可以解决问题
*/
#include <iostream>
#include <stdio.h>
#include <algorithm>
#define MAXN 1010
int arge[MAXN];//存储符合条件的y的值
using namespace std;
int main(void)
{
	int n;

	while (scanf("%d", &n) != EOF)
	{
		int count = 0;//符合条件的y的数量

		for (int y = n + 1; y <= 2 * n; y++)
			if ((n*y) % (y - n) == 0)//如果当前的x存在
				arge[count++] = y;//就存入数组之中
		printf("%d\n", count);
		/*for (int i = 0; i < count; i++)
			if (!i)
				printf("1/%d = 1/%d + 1/%d", n, (n*arge[i]) / (arge[i] - n), arge[i]);
			else
				printf("\n1/%d = 1/%d + 1/%d", n, (n*arge[i]) / (arge[i] - n), arge[i]);
			*/
		for (int i = 0; i < count; i++)//依次打印各个算式
			printf("1/%d = 1/%d + 1/%d\n", n, (n*arge[i]) / (arge[i] - n), arge[i]);
	}

	return 0;
}

其中的变量y只能够增长到2n的推导过程如下:

UVA - 10976 - Fractions Again?!