坑很多的一道題(含測試樣例)——L1-009 N個數求和 (20分)
L1-009 N個數求和 (20分)
本題的要求很簡單,就是求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
我的解決辦法:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
scanner.nextLine();
int a, b;
String[] split = scanner.nextLine().split(" ");
String s = split[0];
a = Integer.parseInt(s.substring(0, s.indexOf('/')));
b = Integer.parseInt(s.substring(s.indexOf('/') + 1));
int x, y, common;
common = gcd(a, b);
a /= common;
b /= common;
for (int i = 1; i < n; i++) {
s = split[i];
x = Integer.parseInt(s.substring(0, s.indexOf('/')));
y = Integer.parseInt(s.substring(s.indexOf('/') + 1));
common = y * b / gcd(y, b);
a *= common / b;
x *= common / y;
a += x;
b = common;
common = gcd(a, b);
a /= common;
b /= common;
}
if(a / b != 0) {
if(a % b != 0)
System.out.println(a / b + " " + a % b + "/" + b);
else
System.out.println(a / b);
} else {
if(a % b != 0)
System.out.println(a % b + "/" + b);
else
System.out.println(0);
}
}
private static int gcd(int a, int b) {
return b == 0 ? a : gcd(b, a % b);
}
}
我找到的測試樣例
輸入樣例
1
-50/1000
輸出樣例
-1/20
輸入樣例
1
-6/4
輸出樣例
-1 1/-2
輸入樣例
2
0/1 0/2
輸出樣例
0
輸入樣例
2
0/1 2/4
輸出樣例
1/2
相關文章
- L1-009 N個數求和
- 小於n的最大數,記一道位元組面試題面試題
- PAT-L1-009 N個數求和
- 【程式設計測試題】素數對、不要二、求和程式設計
- 數學建模例題2.30 矩陣元素求和示例矩陣
- 軟體測試用例編寫(含思路)
- 怎樣寫測試用例?
- 本題要求統計給定整數M和N區間內素數的個數並對它們求和。
- 面試題,實現一個求和函式面試題函式
- CSS 倒數第n個li元素樣式CSS
- 用Python解決一個等差數列的求和問題Python
- 記一道控制並行數的前端面試題並行前端面試題
- 怎樣解題|題7.5.12:因數的個數
- 面試題記錄:支付怎麼測,(私下寫能會寫出很多測試點,面試的時候說卻很容易漏掉很多)面試題
- 一道面試題的分析面試題
- [每日一題] 第十六題:n個骰子的點數每日一題
- 每個人都應該瞭解的金融小知識 — 利率計算 (含一道碼農面試題)面試題
- 測試——水杯的測試用例
- 一道數學題的解法
- 介面測試的N中玩法
- 為什麼很多基於 python 的自動化測試框架要用 excel 寫用例Python框架Excel
- n個骰子的點數
- 分享一道昨天的面試題面試題
- 一道面試題引起的思考面試題
- 從一道面試題說起—js隱式轉換踩坑合集面試題JS
- 每個軟體測試員最怕被問的問題:“測得怎麼樣了?”
- 輸入N,再輸入N個數,N
- 怎樣解題|題9.3.40:帶有下取整的求和的極限
- 測試面試-測試用例面試
- java註解與反射(非常詳細, 帶有很多樣例)Java反射
- 每個軟體測試員最怕被問的問題:“測得怎麼樣了?”做測試太難了
- 【黑盒測試】測試用例的常用方法
- httprunner 4.x學習 - 12 測試用例引用另一個測試用例HTTP
- Jmeter分散式壓測實戰及踩坑處理(含引數化)JMeter分散式
- 有關介面測試的用例設計問題
- 面安服的一道筆試題筆試
- 分享一道Go面試必考的題Go面試
- 一道面試題引發的思考面試題