輸入第一行給出乙個正整數n(≤100)。隨後一行按格式a1/b1 a2/b2 …給出n個有理數
輸出上述數字和的最簡形式 —— 即將結果寫成
整數部分 分數部分,
其中分數部分寫成分子/分母,要求分子小於分母,且它們沒有公因子。
如果結果的整數部分為0,則只輸出分數部分。
**(一)**看到這道題目,第一反應想的是直接輸入乙個分數「a/b」,但是這樣的話得到的是乙個整數,所以又想把它*0.1轉化為double,但是這樣相加之後也只能保留部分小數,並不精確
因此此時需採用「將分子分母分開輸入,用"/"代替除號
(二)接下來進行相鄰兩項的求和,此時需要給乙個初始化分子y為0,分母x任意的第一項,才可以與後一項輸入的分子a與分母b進行求和,得到新的分子y 與分母x
(三)求出前後兩項b的最小公倍數 並將兩個a 相加 加完後就進行約分化簡 得到乙個最簡分數 然後迴圈,最後控制輸出格式。
first.
定義 and 輸入
typedef
long
long ll;
cin >> n;
char ch;
int j,k;
for(i=1;i<=n;i++)
return y;
}
得到兩項的乙個和之後,需要及時將結果進行化簡,
否則會導致分母越來越大
void
huajian
(ll &x,ll &y)
//分母,分子。
//因為化簡完的x與y需傳給實參,所以要加引用符號
last.
控制輸出格式
if
((y>x)||(
(yfabs
(y)>x)))
else cout << y <<
"/"<< x;
N個數求和
n個數求和 本題的要求很簡單,就是求n個數字的和。麻煩的是,這些數字是以有理數分子 分母的形式給出的,你輸出的和也必須是有理數的形式。輸入格式 輸入第一行給出乙個正整數n le 100 隨後一行按格式a1 b1 a2 b2 給出n個有理數。題目保證所有分子和分母都在長整型範圍內。另外,負數的符號一定...
N個數求和
本題的要求很簡單,就是求n個數字的和。麻煩的是,這些數字是以有理數分子 分母的形式給出的,你輸出的和也必須是有理數的形式。輸入第一行給出乙個正整數n 100 隨後一行按格式a1 b1 a2 b2 給出n個有理數。題目保證所有分子和分母都在長整型範圍內。另外,負數的符號一定出現在分子前面。輸出上述數字...
分數序列規律求和
有一分數序列 2 1,3 2,5 3,8 5,13 8,21 13 求出這個數列的前 20 項之和。程式分析 找到分子與分母的變化規律 在面試中手寫 很多人會大意不處理資料型別,這裡的資料型別為double package com.math.forth 有一分數序列 2 1,3 2,5 3,8 5,...