分数处理类
作用: 用于做 比例运算、分数运算
分数处理类
public class Fraction
{
private int member; // 分子
private int denominator; // 分母
//分子属性
public int Member
{
get
{
return member;
}
set
{
member = value;
}
}
//分母属性
public int Denominator
{
get
{
return denominator;
}
set
{
if (value != 0)
{
denominator = value;
}
}
}
//打印分数信息
public void PrintFraction()
{
Console.WriteLine(member + " / " + denominator);
}
//约分
public void Reduction()
{
int gcd = GCD(this.Member, this.Denominator);
this.Member /= gcd;
this.Denominator /= gcd;
}
//先求最大公约数 4 8
/// <summary>
/// 循环获取整数余数 直到余数为0为止;
/// </summary>
/// <param name="a"></param>
/// <param name="b"></param>
/// <returns></returns>
private int GCD(int a, int b)
{
int temp = 0;
while (b != 0)
{
// 获取 a 除于 b 的整数余数 整数余数(不带小数点的余数)就是 偏向与0的 整数余数为0时 代表 表达式可以整除
temp = a % b;
// 获取到 a 的 整数余数 然后 调转a为b变量 余数赋值给新的b变量 作用: 用于将除数整除并除尽
a = b;
b = temp;
}
return a;
}
//分子分母交换
public Fraction Exchange()
{
Fraction NewFra = new Fraction();
NewFra.denominator = this.member;
NewFra.member = this.denominator;
return NewFra;
}
//加法
public Fraction Add(Fraction fra)
{
//存放加法结果
Fraction sum = new Fraction();
sum.Member = this.member * fra.Denominator + fra.Member * this.denominator;
sum.Denominator = this.Denominator * fra.Denominator;
//约分
sum.Reduction();
return sum;
}
//减法
public Fraction Sub(Fraction fra)
{
//存放加法结果
Fraction sum = new Fraction();
sum.Member = this.member * fra.Denominator - fra.Member * this.denominator;
sum.Denominator = this.Denominator * fra.Denominator;
//约分
sum.Reduction();
return sum;
}
//乘法
public Fraction Mult(Fraction fra)
{
//存放加法结果
Fraction sum = new Fraction();
sum.Member = this.member * fra.Member;
sum.Denominator = this.Denominator * fra.Denominator;
//约分
sum.Reduction();
return sum;
}
//除法
public Fraction Division(Fraction fra)
{
//存放加法结果
Fraction sum = new Fraction();
//求倒数
Fraction newfra = fra.Exchange();
sum.Member = this.member * newfra.member;
sum.Denominator = this.denominator * newfra.denominator;
//约分
sum.Reduction();
return sum;
}
//取余数
public Fraction Ramind(Fraction fra)
{
Fraction sum = new Fraction();
sum.member = (this.member * fra.denominator) % (fra.member * this.denominator);
sum.denominator = (this.denominator * fra.denominator);
sum.Reduction();
return sum;
}
}