第四届蓝桥杯软件类国赛真题-C-A-3_埃及分数

//第四届蓝桥杯软件类国赛真题-C-A-3_埃及分数.cpp 
/*
【题目】 

标题:埃及分数

    古埃及曾经创造出灿烂的人类文明,他们的分数表示却很令人不解。
	古埃及喜欢把一个分数分解为类似: 1/a + 1/b 的格式。

    这里,a 和 b 必须是不同的两个整数,分子必须为 1

    比如,2/15 一共有 4 种不同的分解法(姑且称为埃及分解法):

1/8 + 1/120
1/9 + 1/45
1/10 + 1/30
1/12 + 1/20


    那么, 2/45 一共有多少个不同的埃及分解呢(满足加法交换律的算同种分解)?
	请直接提交该整数(千万不要提交详细的分解式!)。

    请严格按照要求,通过浏览器提交答案。
    注意:只提交分解的种类数,不要写其它附加内容,比如:说明性的文字
*/

/*【解题思路】
解法:将 1/a + 1/b == 2/45 这一表达式分子分母通分转化为 2ab == 45(a+b) ,
	从而避免除法运算浮点数运算的溢出等不精确原因。然后暴力枚举a、b的值。
	且题中没给a、b值的最大值范围,故可以多次尝试不同的最大值来验证答案是否正确 

答案:
7
*/

#include
using namespace std;

#define MAX 20000

int main()
{
	int a,b;
	int count = 0;
	for(a = 1;a < MAX;a++)
		for(b = 1;b < MAX;b++){
			
			if(a != b &&2*a*b == 45*(a+b)){
				cout<<"1/"<

你可能感兴趣的:(算法&&思,C/C++)