真分數轉埃及分數的和 貪心

2021-07-22 13:56:02 字數 433 閱讀 9052

分子為1的分數稱為埃及分數。現輸入乙個真分數(分子比分母小的分數,叫做真分數),請將該分數分解為埃及分數。

例如6/7 = 1/2+1/3+1/42

題目分析:設原分數為a/b,b除a得到c,c+1作為第乙個分母,拿a/b-1/c的值做第二個待分解的數直到a==1或者b%a==0

#include #include #include using namespace std;

string tostring(long long x)

int len = ans.length();

for (int i = 0; i < len / 2; i ++)

return ans;

}int main()

if (a == 1)

else

}}

貪心 埃及分數

把乙個真分數表示為埃及分數之和的形式。所謂埃及分數,是指分子為1的分數。如7 8 1 2 1 3 1 24。乙個真分數a b,要尋找其最大的1 c,那麼很容易想到的方法是列舉。但是列舉法效率不高,所以這裡採用貪心演算法。a b肯定為 1的數字,那麼 c b a 既可以理解為b比a大多少倍,那麼顯然餘...

將真分數分解為埃及分數

分子為1 的分數稱為埃及分數,現輸入乙個真分數,請將該分數分解為埃及分數。如 8 11 1 2 1 5 1 55 1 110。問題分析與演算法設計 若真分數的分子a能整除分母b,則真分數經過化簡就可以得到埃及分數,若真分數的分子不能整除分母,則可以從原來的分數中分解出乙個分母為b a 1的埃及分數。...

貪心法 埃及分數

古代埃及人在進行分數運算時。只使用分子是1的分數。因此這種分數也叫做埃及分數,或者叫單分子分數。例如 7 8 1 2 1 3 1 24 乙個真分數的埃及分數表示並不唯一 7 8也可以有如下表示 7 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 貪心法,則是要讓乙個真分數被埃及分...