n個分數求和

2021-09-28 23:46:55 字數 1085 閱讀 8990

輸入第一行給出乙個正整數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,...