c语言分数相加约分,两个分数相加

该博客介绍了一种使用Java实现分数相加的方法。首先通过求最小公倍数进行通分,然后对相加后的结果进行约分。博主封装了求最小公倍数和最大公约数的函数,提高了代码复用性。程序读取用户输入的两个分数并输出相加结果。
摘要由CSDN通过智能技术生成

/**

思路:

两个分数相加的时候,要先进行通分,然后再进行约分。

所以要先求出两个分数中分母的最小公倍数,将分母变成一样,然后变换分子,进行相加的运算。

再求出相加后分子和分母的最大公约数,进行约分。

可以将求最小公倍数和最大公约封装成两个方法,这样可以提高代码的复用性,减少代码量。

*/

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;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值