埃及分数
推导过程:
代码实现:
#include<iostream>
using namespace std;
int gcd(int x, int y) {
return !y ? x : gcd(y, x % y);
}
void EgyptFraction(int A, int B)
{
cout << A << "/" << B << "=";
do
{
int E = B / A + 1;//C=B/A
A = A * E - B;
B = B * E;
int t = gcd(B, A);//B>A
if (t > 1) A /= t, B /= t;
cout << "1/" << E << "+";
}while(A != 1);
cout << "1/" << B;
}
int main() {
int mol, den;//分子,分母
cin >> mol >> den;
EgyptFraction(mol, den);
return 0;
}