/**
思路:
兩個分數相加的時候,要先進行通分,然後再進行約分。
是以要先求出兩個分數中分母的最小公倍數,将分母變成一樣,然後變換分子,進行相加的運算。
再求出相加後分子和分母的最大公約數,進行約分。
可以将求最小公倍數和最大公約封裝成兩個方法,這樣可以提高代碼的複用性,減少代碼量。
*/
import java.util.Scanner;
class FractionAdd
{
public static void main(String[] args)
{
int fm1,fm2,fz1,fz2;
Scanner sc=new Scanner(System.in);
FractionAdd fa=new FractionAdd();
System.out.println("請輸入第一個分數");
fz1=sc.nextInt();
fm1=sc.nextInt();
System.out.println("請輸入第二個分數");
fz2=sc.nextInt();
fm2=sc.nextInt();
//先将兩個分數進行通分
int num1=fa.gbs(fm1,fm2);
fz1=(num1/fm1)*fz1;
fz2=(num1/fm2)*fz2;
//然後将兩個分數進行相加
int num2=fz1+fz2;
//然後将相加後得到的分數進行約分
int num3=fa.gys(num1,num2);
if(num2/num3==num1/num3)
{
System.out.println("相加的結果為1");
}else
{
System.out.println("相加的結果為"+num2/num3+"/"+num1/num3);
}
}
//求出兩個數的最小公倍數
public int gbs(int n1,int n2)
{
int sum=n1*n2,i;
for(i=1;i<=sum;i++)
{
if(i%n1==0&&i%n2==0)
break;
}
return i;
}
//求出兩個數的最大公約數
public int gys(int n1,int n2)
{
int r;
while(n2>0)
{
r=n1%n2;
n1=n2;
n2=r;
}
return n1;
}
}