0
我正在創建一個計算器程序,需要創建GreatestCommononDivisor
和ReduceFraction
方法;但我的GreatestCommonDivisor
方法沒有得到正確的價值,我不知道爲什麼。編寫最大公約數法的麻煩
任何人都可以向正確的方向提供任何指導或幫助嗎?
public static void ProcessReduceFraction()
{
Int32 numerator, denominator, reducedNumerator, reducedDenominator;
numerator = GetPostiveNonZeroInteger("Please Enter Non-Zero Postive Numerator");
denominator = GetPostiveNonZeroInteger("Please Enter Non-Zero Postive Denominator");
reducedNumerator = numerator/GreatestCommonDivisor(denominator, numerator);
reducedDenominator = denominator/GreatestCommonDivisor(numerator, denominator);
Console.WriteLine("{0}/{1} can be reduced to: {2}/{3} ", numerator, denominator, reducedNumerator, reducedDenominator);
Console.ReadLine();
}
public static Int32 GreatestCommonDivisor(Int32 r, Int32 n)
{
Int32 remainder ,dividend, divisor, pervremainder;
dividend = Math.Max(Math.Abs(n),Math.Abs(r));
divisor = Math.Min(Math.Abs(n), Math.Abs(r));
remainder = dividend % divisor;
pervremainder = divisor;
// Pull out remainders.
while (remainder == 0)
{
if (remainder!= 0)
{
dividend = divisor;
divisor = remainder;
pervremainder = remainder;
remainder = dividend % divisor;
}
}
return pervremainder;
}
public static void ProcessGreatestCommonDivisor()
{
Int32 firstnumber, secondnumber, greatestcommondivisor;
firstnumber = GetPostiveNonZeroInteger("Plesae Enter Non-Zero Postive First Number");
//firstnumber = Int32.Parse(Console.ReadLine());
secondnumber = GetPostiveNonZeroInteger("Please Enter Non-Zero Postive Secound Number");
//secoundnumber = Int32.Parse(Console.ReadLine());
greatestcommondivisor = GreatestCommonDivisor(secondnumber, firstnumber);
//greatestcommondivisor = Int32.Parse(Console.ReadLine());
Console.WriteLine("The Greatest Common Divisor of {0} and {1} is: {2} ",
firstnumber,secondnumber, greatestcommondivisor);
Console.ReadLine();
}
public static Int32 GetPostiveNonZeroInteger(String prompt)
{
Int32 n;
Console.WriteLine(prompt);
n = Int32.Parse(Console.ReadLine());
while (n <= 0)
{
Console.WriteLine("Error: enter non-zero postive value");
Console.WriteLine(prompt);
n = Int32.Parse(Console.ReadLine());
}
return n;
}
}
有有什麼錯誤?計算錯了嗎?這是一項家庭作業嗎?您可能想首先看到:stackoverflow.com/help/how-to-ask – bit 2014-11-04 06:26:42