時間限制
400 ms
記憶體限制
65536 kb
**長度限制
8000 b
判題程式
standard 作者
陳越本題的要求很簡單,就是求n個數字的和。麻煩的是,這些數字是以有理數「分子/分母」的形式給出的,你輸出的和也必須是有理數的形式。
輸入格式:
輸入第一行給出乙個正整數n(<=100)。隨後一行按格式「a1/b1 a2/b2 ...」給出n個有理數。題目保證所有分子和分母都在長整型範圍內。另外,負數的符號一定出現在分子前面。
輸出格式:
輸出上述數字和的最簡形式 —— 即將結果寫成「整數部分 分數部分」,其中分數部分寫成「分子/分母」,要求分子小於分母,且它們沒有公因子。如果結果的整數部分為0,則只輸出分數部分。
輸入樣例1:
5輸出樣例1:2/5 4/15 1/30 -2/60 8/3
3 1/3輸入樣例2:
2輸出樣例2:4/3 2/3
2輸入樣例3:
3輸出樣例3:1/3 -1/6 1/8
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 ...