“两个整数的最大公约数是平均除以两个数字中的每一个的最大整数。编写返回两个整数的最大公约数的方法 Gcd。将该方法合并到一个应用程序中,该应用程序从用户读取两个值并显示结果。”
(这不是作业,只是我正在使用的书中的一个练习)
你能帮我解决这个问题吗?这是我到目前为止所得到的。
(编辑 - 我可以提交这两个数字,但它不会为我计算 Gcd)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Greatest_Common_Divisor
{
class Program
{
static int GetNum(string text)
{
bool IsItANumber = false;
int x = 0;
Console.WriteLine(text);
do
{
IsItANumber = int.TryParse(Console.ReadLine(), out x);
} while (!IsItANumber);
return x;
}
static void Main(string[] args)
{
string text = "enter a number";
int x = GetNum(text);
text = "enter a second number";
int y = GetNum(text);
int z = GCD(x, y);
Console.WriteLine(z);
}
private static int GCD(int x, int y)
{
int v = 0;
int n = 0;
v = GetGreatestDivisor(x, y);
return v;
}
static int GetGreatestDivisor(int m, int h)
{
do
{
for (int i = m; i <= 1; i--)
if (m%i == 0 && h%i == 0)
{
int x = 0;
x = i;
return x;
}
} while (true);
return m;
}
}
}