華為OJ(將真分數分解為埃及分數)

2021-07-04 15:07:17 字數 914 閱讀 8901

題目:將真分數分解為埃及分數

描述

分子為1的分數稱為埃及分數。現輸入乙個真分數(分子比分母小的分數,叫做真分數),請將該分數分解為埃及分數。如:8/11 = 1/2+1/5+1/55+1/110。

介面說明

/*功能: 將分數分解為埃及分數序列

輸入引數:

string pcrealfraction:真分數(格式「8/11」)

返回值:

string pcegpytfraction:分解後的埃及分數序列(格式「1/2+1/5+1/55+1/100」)

*/public static string  convertrealfracttoegpytfract(string pcrealfraction)

知識點字串

執行時間限制

10m記憶體限制

128輸入

輸入乙個真分數,string型

輸出輸出分解後的string

樣例輸入

8/11

樣例輸出

1/2+1/5+1/55+1/110

若真分數的分子a能整除分母b,則真分數經過化簡就可以得到埃及分數,若真分數的分子不能整除分母,則可以從原來的分數中分解出乙個分母為b/a+1的埃及分數。用這種方法將剩餘部分反覆分解,最後可得到結果。

網上大多都是這種解法,可能就是乙個規律題,前面還好懂,對a=3情況的單獨處理不是太懂,下面是**:

#include#includeusing namespace std;

int main()

if(a==1)

{ cout<<"1/"<

將真分數分解為埃及分數

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

將整數分解為連續正整數之和

將乙個整數 n 分解為連續正整數之和,如 15 可以分解為 15 1 2 3 4 5 15 4 5 6 15 7 8 計算從 i 開始連續 k 個數之和 sum k 2 i k 1 2 當 sum n 時,有 k k 2 i 1 k 2 n 0 變形為 i 2 n k k 1 2。在 2,2 n k...

整數分解為若干項之和 20 分

將乙個正整數n分解成幾個正整數相加,可以有多種分解方法,例如7 6 1,7 5 2,7 5 1 1,程式設計求出正整數n的所有整數分解式子。每個輸入包含乙個測試用例,即正整數n 0按遞增順序輸出n的所有整數分解式子。遞增順序是指 對於兩個分解序列n 1 和n 2 若存在i使得n 1 m 1 n i ...