Java辗转相除法代码
时间: 2023-05-17 21:05:25 浏览: 80
以下是 Java 实现的辗转相除法代码:
public static int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
这段代码可以计算出 a 和 b 的最大公约数。
相关问题
java 辗转相除法求最大公约
要使用辗转相除法求最大公约数,可以按照以下步骤进行:
1. 定义一个函数 gcd,接收两个整数参数 a 和 b。
2. 在函数内部,使用 while 循环执行以下操作,直到 b 变为 0:
- 计算 a 除以 b 的余数,将结果赋值给变量 temp。
- 将变量 b 的值赋给变量 a。
- 将变量 temp 的值赋给变量 b。
3. 当循环结束时,变量 a 的值即为最大公约数。
下面是一个使用辗转相除法求最大公约数的 Java 示例代码:
```java
public class Main {
public static void main(String[] args) {
int a = 48;
int b = 36;
int result = gcd(a, b);
System.out.println("最大公约数是:" + result);
}
public static int gcd(int a, int b) {
while (b != 0) {
int temp = a % b;
a = b;
b = temp;
}
return a;
}
}
```
在上述示例代码中,我们使用辗转相除法求解了 48 和 36 的最大公约数,结果为 12。你可以根据需要修改输入的 a 和 b 的值来求解其他数的最大公约数。
java中辗转相除法
辗转相除法,也称欧几里得算法,是一种求最大公约数的算法。在Java中,可以使用以下代码实现辗转相除法:
```
public static int gcd(int a, int b) {
if (b == 0) {
return a;
} else {
return gcd(b, a % b);
}
}
```
其中,a和b是要求最大公约数的两个数,%是取模运算符,表示a除以b的余数。这个算法的时间复杂度为O(log n),其中n是a和b中较小的那个数的位数。
辗转相除法在Java中的应用非常广泛,例如求两个数的最大公约数、判断两个数是否互质等等。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)