C#中分别用递归方式和迭代方式实现求两个整数i和j的最大公约数gcd(i,j)的算法。提示:一种常用求最大公约数的算法是欧几里得算法,也称为辗转相除法
时间: 2024-01-22 09:18:45 浏览: 138
递归方式实现:
```C#
public static int GCDRecursive(int i, int j)
{
if (j == 0)
return i;
else
return GCDRecursive(j, i % j);
}
```
迭代方式实现:
```C#
public static int GCDIterative(int i, int j)
{
while (j != 0)
{
int remainder = i % j;
i = j;
j = remainder;
}
return i;
}
```
其中,递归方式是通过不断将较大的数模较小的数,直到较小的数为0,此时较大的数即为最大公约数;迭代方式则是通过不断将较大的数模较小的数,直到较小的数为0,此时较大的数即为最大公约数。两种方式实现的算法都是欧几里得算法。
阅读全文