L1 009 N個數求和

2021-08-17 10:26:24 字數 1363 閱讀 7893

時間限制

400 ms

記憶體限制

65536 kb

**長度限制

8000 b

判題程式

standard 作者

陳越本題的要求很簡單,就是求n個數字的和。麻煩的是,這些數字是以有理數「分子/分母」的形式給出的,你輸出的和也必須是有理數的形式。

輸入格式:

輸入第一行給出乙個正整數n(<=100)。隨後一行按格式「a1/b1 a2/b2 ...」給出n個有理數。題目保證所有分子和分母都在長整型範圍內。另外,負數的符號一定出現在分子前面。

輸出格式:

輸出上述數字和的最簡形式 —— 即將結果寫成「整數部分 分數部分」,其中分數部分寫成「分子/分母」,要求分子小於分母,且它們沒有公因子。如果結果的整數部分為0,則只輸出分數部分。

輸入樣例1:

5

2/5 4/15 1/30 -2/60 8/3

輸出樣例1:
3 1/3
輸入樣例2:
2

4/3 2/3

輸出樣例2:
2
輸入樣例3:
3

1/3 -1/6 1/8

輸出樣例3:
7/24

分析:做這題 wa 了好幾次,都是出現同乙個錯誤,浮點錯誤,第一次遇見這個錯誤,長見識了,這個錯誤主要是與 0 有關的錯誤,本題需要細心地控制,這種題雖然水,但是考察細心和耐心,也不可忽視,本來第一次寫的思路是定義兩個函式,乙個是求最大公因數,乙個是求最小公倍數,在輸入的過程中,一邊求分母的最小公倍數,一邊相加,然後再找出分子分母的最小公因數,等計算完了之後再進行一些處理,在過程中,我還特別注意控制了分子的正負情況,雖然自己感覺也很麻煩,但是並沒有覺得**不妥,但是提交就有一處浮點錯誤,除錯了很久,放棄了這種方法,轉用了乙個簡單的方法,就是接下來給大家參考的**(記住資料是long long int)。。。

#include#include#includeusing namespace std;

typedef long long ll;

ll judge(ll a,ll b)///求最大公因數

}return a;

}int main()

{ int n;

ll a[105],b[105];

scanf("%d",&n);

if(n==0)

printf("0\n");

else

{ll p=1;///作分母統計

for(int i=0;i

L1 009 N個數求和

本題的要求很簡單,就是求n個數字的和。麻煩的是,這些數字是以有理數 分子 分母 的形式給出的,你輸出的和也必須是有理數的形式。輸入格式 輸入第一行給出乙個正整數n 100 隨後一行按格式 a1 b1 a2 b2 給出n個有理數。題目保證所有分子和分母都在長整型範圍內。另外,負數的符號一定出現在分子前...

L1 009 N個數求和

時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 本題的要求很簡單,就是求n個數字的和。麻煩的是,這些數字是以有理數 分子 分母 的形式給出的,你輸出的和也必須是有理數的形式。輸入格式 輸入第一行給出乙個正整數n 100 隨後一行按...

L1 009 N個數求和

題目鏈結 時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 本題的要求很簡單,就是求n個數字的和。麻煩的是,這些數字是以有理數 分子 分母 的形式給出的,你輸出的和也必須是有理數的形式。輸入格式 輸入第一行給出乙個正整數n 100 ...