4
我已經作出了控制檯應用程序,相加和相減的級分,我已經添加了一個功能,以簡化:在C#簡化餾分
public static Numbers Add(Numbers n1, Numbers n2)
{
int den1;
int num1;
int num2;
int dsimp;
int nsimp;
int numtop;
num1 = n1.Numerator * n2.Denominator;
num2 = n2.Numerator * n1.Denominator;
den1 = n1.Denominator * n2.Denominator;
numtop = num2 + num1;
if (numtop == 0)
{
return new Numbers(0);
}
if (numtop % n1.Denominator == 0)
{
nsimp = numtop/n1.Denominator;
dsimp = den1/n1.Denominator;
return new Numbers(nsimp, dsimp);
}
else
{
return new Numbers(numtop, den1);
}
}
當我把在1/2 + 4/8它簡化了一切完美我告訴它的方式,但是,它給了我8/8。這需要簡化爲1/1。我如何獲得它可以簡化已經簡化到最低分數的部分?
的確,您需要找到GCD:http://en.wikipedia.org/wiki/Greatest_common_divisor – MrFox
@MFFOX:謝謝,添加了鏈接。 – leppie
如果數字基於BigInteger,則存在現有方法:http://msdn.microsoft.com/zh-CN/library/system.numerics.biginteger.greatestcommondivisor.aspx GCD – CodesInChaos