L1 009 N個數求和 20分

2021-10-02 18:43:21 字數 1493 閱讀 8032

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

輸入格式:

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

輸出格式:

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

輸入樣例1:

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

輸出樣例1:

3 1/3

輸入樣例2:

24/3 2/3

輸出樣例2:

2輸入樣例3:

31/3 -1/6 1/8

輸出樣例3:

7/24

解題思路:本題的坑是真的多,一開始是把所有的分數通分在一起求分子的和,結果不是超時,就是答案錯誤,最後乾脆就不求最小公倍數,直接暴力交叉相乘求和。。。。通過了

解題**:

#include

typedef

struct youlishu

ylsh;

intmain()

//約分答案的分子和分母。

if(aws.fenzi ==0)

int a = aws.fenzi, b = aws.fenmu, r;

while

(b) aws.fenmu /

= a;

aws.fenzi /

= a;

if(aws.fenzi <0)

//如果分子小於0

while

(aws.fenmu % t !=

0|| aws.fenzi % t !=

0) t--

;//求分子分母的最大公約數

aws.fenmu = aws.fenmu / t;

aws.fenzi = aws.fenzi / t;

if(aws.fenmu ==1)

printf

("%d"

, aws.fenzi)

;//答案的分母是 1

else

if(aws.fenmu > aws.fenzi )

printf

("%d/%d"

, aws.fenzi, aws.fenmu)

;//答案是真分數

else

//如果答案是假分數

return0;

}

L1 009 N個數求和 20 分

單位 浙江大學 時間限制 400 ms 記憶體限制 64 mb 長度限制 16 kb 本題的要求很簡單,就是求n個數字的和。麻煩的是,這些數字是以有理數分子 分母的形式給出的,你輸出的和也必須是有理數的形式。輸入第一行給出乙個正整數n 100 隨後一行按格式a1 b1 a2 b2 給出n個有理數。題...

L1 009 N個數求和 20分

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

L1 009 N個數求和 20分

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