JAVA 점수 류 의 실현

5156 단어 자바qqJ#sun
제목:
1. 점수 류 를 작성 하여 점수의 더하기, 빼 기, 곱 하기, 나 누 기 를 실현 한다.
2. 아래 점 수 를 작은 것 에서 큰 것 으로 정렬: 1/2, 2/3, 48/62, 70/20, 9/25
나의 해법 은 다음 과 같다. 모두 함께 토론 하 자.

package com.gzitc.exam;
/**
 *       ,     
 * @author e606#qq.com
 *
 */
public class MathUtil {
	/**
	 *          ,        。
	 *            ,          。             。
	 * @param a
	 * @param b
	 * @return
	 */
	public static long gY(long a, long b) {
		
		long r = 1;
		
		if(a < b) {
			long t = a;
			a = b;
			b = t;
		}
		
		r = a % b;
		
		while( r != 0) {
			long t = r;
			r = b % r;
			b = t;
		}
		
		return b;
	}
	/**
	 *     
	 * @param a
	 * @param b
	 * @return
	 */
	public static long gB(long a, long b) {
		long gb = 0;
		gb = a * b / gY(a, b);
		return gb;
	}
}


package com.gzitc.exam;

/**
 *      
 * @author e606#qq.com
 *
 */
public class Fraction {
	/**
	 *   
	 */
	private long sun;
	/**
	 *   
	 */
	private long mum;
	/**
	 *          
	 * @param sun
	 * @param mum
	 */
	public Fraction(long sun, long mum) {
		this.sun = sun;
		this.mum = mum;
	}

	public long getSun() {
		return sun;
	}

	public void setSun(long sun) {
		this.sun = sun;
	}

	public long getMum() {
		return mum;
	}

	public void setMum(long mum) {
		this.mum = mum;
	}

	@Override
	public String toString() {
		return sun + "/" + mum;
	}
	/**
	 *         0
	 * @return
	 */
	public int isUpZero() {
		if(sun * mum > 0) {
			return 1;
		} else {
			return -1;
		}
	}
}

package com.gzitc.exam;

public class FractionUtil {
	/**
	 *     
	 * @param fraction1
	 * @param fraction2
	 * @return
	 */
	public static Fraction plus(Fraction a,Fraction b) {
		long r_mum = MathUtil.gB(a.getMum(), b.getMum());
		long r_sun = a.getSun() * r_mum / a.getMum() + b.getSun() * r_mum / b.getMum();
		return new Fraction(r_sun, r_mum);
	}
	/**
	 *     
	 * @param a
	 * @param b
	 * @return
	 */
	public static Fraction minus(Fraction a,Fraction b) {
		long r_mum = MathUtil.gB(a.getMum(), b.getMum());
		long r_sun = a.getSun() * r_mum / a.getMum() - b.getSun() * r_mum / b.getMum();
		return new Fraction(r_sun, r_mum);
	}
	/**
	 *     
	 * @param a
	 * @param b
	 * @return
	 */
	public static Fraction multiplied(Fraction a,Fraction b) {
		long r_sun = a.getSun() * b.getSun();
		long r_mum = a.getMum() * b.getMum();
		Fraction r_fraction = new Fraction(r_sun, r_mum);
		return r_fraction;
	}
	/**
	 *     
	 * @param a
	 * @param b
	 * @return
	 */
	public static Fraction divided(Fraction a,Fraction b) {
		long r_sun = a.getSun() * b.getMum();
		long r_mum = a.getMum() * b.getSun();
		Fraction r_fraction = new Fraction(r_sun, r_mum);
		return r_fraction;
	}
	
	/**
	 *              
	 * @param arr
	 * @return
	 */
	public static void sort(Fraction arr[]) {
		int length = arr.length;
		//    
		for(int i = 0; i < length-1; i++) {
			for(int j = i; j < length; j++) {
				//               0,    0,  arr[i]  arr[j],    。
				if(FractionUtil.minus(arr[i], arr[j]).isUpZero() > 0) {
					Fraction temp = arr[i];
					arr[i] = arr[j];
					arr[j] = temp; 
				}
			}
		}
	}
	
}

package com.gzitc.exam;

public class Test {
	public static void main(String args[]) {
		Fraction a,b;
		a = new Fraction(5,7);
		b = new Fraction(3,7);
		Fraction arr[] = {new Fraction(1,2), new Fraction(2,3), new Fraction(48,62),
				new Fraction(70,20), new Fraction(9,25)};
		
		System.out.println(a+"+"+b+"="+FractionUtil.plus(a, b));
		System.out.println(a+"-"+b+"="+FractionUtil.minus(a, b));
		System.out.println(a+"*"+b+"="+FractionUtil.multiplied(a, b));
		System.out.println("("+a+")/("+b+")="+FractionUtil.divided(a, b));
		
		System.out.print("  :");
		for(int i = 0; i < arr.length; i++) {
			System.out.print(arr[i]+"  ");
		}
		System.out.print(",          :");
		//       
		FractionUtil.sort(arr);
		
		for(int i = 0; i < arr.length; i++) {
			System.out.print(arr[i]+" , ");
		}
	}
}

좋은 웹페이지 즐겨찾기