java小练习(实现分数的四则运算)

时间:2023-01-09 09:52:46
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生 
* All rights reserved.
* 文件名称:                              
* 作    者:   臧鹏               
* 完成日期:   2012   年 9月 16日
* 版 本 号:      001    

* 对任务及求解方法的描述部分
* 输入描述: 
* 问题描述:分数的加法运算编程
编程思路:分数相加,两个分数分别是1/5和7/20,它们相加后得11/20。方法是先求出两个分数分母的最小公倍数,通分后,再求两个分子的和,最后约简结果分数的分子和分母(如果两个分数相加的结果是4/8,则必须将其化简成最简分数的形式1/2),即用分子分母的最大公约数分别除分子和分母。请用四个对话框顺序输入分子和分母,在控制台上输出其运算结果。
* 程序输出: 
* 程序头部的注释结束
*/

public class Demo01 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		fracAdd(1,5,7,20);//结果为:11/20
		fracSub(1,5,7,20);//分数相减
		fracMul(1,5,7,20);//分数相乘
		fractDiv(1,5,7,20);//分数相除

	}
	static void fracAdd(int first_numerator,int first_denominator,int second_numrator,int second_denominator){
		//以下代码能够在控制台上显示结果
		//需要调用求最大公约数的函数
		//需要调用求最小公倍数的函数
		int denominator;
		int numerator;
		
	    if(first_denominator==second_denominator)  //分母相同时加分子     
	    {      
	         denominator=first_denominator;      
	         numerator=first_numerator+second_numrator;      
	    }      
	    else  //否则同分比较分子     
	    {      
	    	denominator=first_denominator*second_denominator;      
	    	numerator=first_numerator*second_denominator+first_denominator*second_numrator;      
	    }    
	    int gcd = gcd(numerator,denominator);
		denominator = denominator / gcd;
		numerator = numerator / gcd;		
		System.out.println("输出的结果是"+numerator+"/"+denominator); 
	    return ;      

	}
	static void fracSub(int first_numerator,int first_denominator,int second_numrator,int second_denominator){
		//以下代码能够在控制台上显示结果
		//需要调用求最大公约数的函数
		
		int denominator;
		int numerator;
		
	    if(first_denominator==second_denominator)  //分母相同时加分子     
	    {      
	         denominator=first_denominator;      
	         numerator=first_numerator-second_numrator;      
	    }      
	    else  //否则同分比较分子     
	    {      
	    	denominator=first_denominator*second_denominator;      
	    	numerator=first_numerator*second_denominator-first_denominator*second_numrator;      
	    }    
	    int gcd = gcd(numerator,denominator);
		denominator = denominator / gcd;
		numerator = numerator / gcd;		
		System.out.println("输出的结果是"+numerator+"/"+denominator); 
	    return ;      

	}
	static void fracMul(int first_numerator,int first_denominator,int second_numerator,int second_denominator){
		//以下代码能够在控制台上显示结果
		//需要调用求最大公约数的函数
		
		int denominator;
		int numerator;
		
	   
	    	denominator=first_denominator*second_denominator;      
	    	numerator=first_numerator*second_numerator; 
	      
	    int gcd = gcd(numerator,denominator);
		denominator = denominator / gcd;
		numerator = numerator / gcd;		
		System.out.println("输出的结果是"+numerator+"/"+denominator); 
	    return ;      

	}
	static void fractDiv(int first_numerator,int first_denominator,int second_numerator,int second_denominator){
		//以下代码能够在控制台上显示结果
		//需要调用求最大公约数的函数
		
		int denominator;
		int numerator;
		
		numerator = first_numerator*second_denominator;
		denominator = first_denominator*second_numerator;
		
	    	
	      
	    int gcd = gcd(numerator,denominator);
		denominator = denominator / gcd;
		numerator = numerator / gcd;		
		System.out.println("输出的结果是"+numerator+"/"+denominator); 
	    return ;      

	}
	static int gcd(int x,int y){
		 int r;      
		    while( y!= 0)      
		    {      
		        r = x%y;      
		        x = y;      
		        y = r;      
		    }      

		return x;
		
	}
	
}

java小练习(实现分数的四则运算)