12:分数求和

12:分数求和

分数运算法则

*1、同分母分数相加,分母不变,即分数单位不变,分子相加,能约分的要约分。
例1:
在这里插入图片描述
例2:
在这里插入图片描述

2.异分母分数相加,先通分,即运用分数的基本性质将异分母分数转化为同分母分数,改变其分数单位而大小不变,再按同分母分数相加去计算,最后能约分的要约分。
例1:
在这里插入图片描述
例2:
在这里插入图片描述*

正题开始

描述

输入n个分数并对他们求和,并用最简形式表示。所谓最简形式是指:分子分母的最大公约数为1;若最终结果的分母为1,则直接用整数表示。

如:5/6、10/3均是最简形式,而3/6需要化简为1/2, 3/1需要化简为3。

分子和分母均不为0,也不为负数。

输入

第一行是一个整数n,表示分数个数,1 <= n <= 10;
接下来n行,每行一个分数,用"p/q"的形式表示,不含空格,p,q均不超过10。

输出

输出只有一行,即最终结果的最简形式。若为分数,用"p/q"的形式表示。

样例输入

2
1/2
1/3

样例输出

5/6

java题解:

import java.util.Scanner;

public class oj12分数求和 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		int n = Integer.parseInt(sc.nextLine());
		int[] fenzi = new int[n+1];//分子
		int[] fenmu = new int[n+1];//分母
		for (int i = 0; i < n; i++) {
			String[] s = sc.nextLine().split("/");
			fenzi[i] = Integer.parseInt(s[0]);//分子
			fenmu[i] = Integer.parseInt(s[1]);//分母
		}
		int ans = 0;
		int bak = 0;//分子和
		int cnt = 1;//分母和
		
		//求分母之间的最小公倍数
		int min = lcm(fenmu[0],fenmu[1]);
		for (int i = 2; i < n; i++) {
			min = lcm(min,fenmu[i]);
		}
		
		for (int i = 0; i < n; i++) {//分子和 = (分母之间的最大公倍数 / 分母)* 分子,再将所有分子相加
			bak = bak + fenzi[i] * (min / fenmu[i]);
		}
		
		for (int i = 0; i < n; i++) {//分母 = 它们的最小公倍数
			cnt = min;
		}
		
		int m = gcd(cnt,bak);
		if(cnt/m==1)System.out.println(bak/m);
		else System.out.println(bak/m+"/"+cnt/m);//分子分母同时除去最大公约数即得最简式
	}
	
	//求最大公约数
	public static int gcd(int x,int y) {
		if(x%y==0) return y;
		else return gcd(y,x%y);
	}
	
	//求最小公倍数
	public static int lcm(int x,int y) {
		return (x*y)/gcd(x,y);
	}
}

有没有大佬知道,我这题在oj平台怎么提交都说错的,我输入样例包括自己用的一些样例都是没错啊。
你比如:
输入:

3
1/3
1/4
1/5

输出

47/60

你再比如
输入:

3
3/1
4/1
5/1

输出

12

你还比如
输入:

3
6/2
4/2
8/1

输出

13

你还比如
输入:

2
3/6
3/9

输出

5/6

死磕了一下午,算了,待有缘人来帮我解答,感谢qwq

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值