我试图用a来计算最大公约数while loop.因此,我正在寻找最大的数字(即循环的最后一个值).我如何摆脱前面的数字?
示例:84和18的最大公约数是6.但是,我的代码给出了数字2,3和6.如果只获取最后一个数字,我需要更改什么?
using System;
namespace CalculateGCD
{
class Program
{
static void Main(string[] args)
{
int a = int.Parse(Console.ReadLine());
int b = int.Parse(Console.ReadLine());
int i = 1;
while (i <= Math.Min(a, b))
{
i++;
if (a % i == 0 && b % i == 0)
{
Console.WriteLine("GCD:{0}", i);
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
定义一个名为的变量max然后打印max出这样的while循环:
int max = 0;
while (i <= Math.Min(a, b))
{
i++;
if (a % i == 0 && b % i == 0)
{
max = i;
}
}
Console.WriteLine("GCD:{0}", max);
Run Code Online (Sandbox Code Playgroud)
此外,如果你使用C#6,你可以Console.WriteLine通过使用字符串插值来简化你:
Console.WriteLine($"GCD:{max}");
Run Code Online (Sandbox Code Playgroud)