題目:將真分數分解為埃及分數
描述
分子為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 ...