java要求输入2个数字,输出它们的最大公约数用三元运算符
时间: 2024-03-11 22:47:03 浏览: 14
下面是使用三元运算符在Java中实现输入2个数字并输出它们的最大公约数的代码:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入第一个数字:");
int num1 = input.nextInt();
System.out.print("请输入第二个数字:");
int num2 = input.nextInt();
int gcd = num1 > num2 ? (num2 == 0 ? num1 : gcd(num2, num1 % num2)) : (num1 == 0 ? num2 : gcd(num1, num2 % num1));
System.out.println("最大公约数是:" + gcd);
}
private static int gcd(int a, int b) {
return b == 0 ? a : gcd(b, a % b);
}
}
```
使用三元运算符可以使代码更加简洁,但是可读性可能会受到一定影响。
相关问题
编写一个Java程序,要求输入两个整数a、b,输出它们的最大公约数。要求使用三元运算符实现。
以下是一个使用三元运算符实现的Java程序,可以计算两个整数的最大公约数:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入第一个整数: ");
int a = scanner.nextInt();
System.out.print("请输入第二个整数: ");
int b = scanner.nextInt();
int gcd = a > b ? (a % b == 0 ? b : gcd(b, a % b)) : (b % a == 0 ? a : gcd(a, b % a));
System.out.println("最大公约数为: " + gcd);
}
public static int gcd(int a, int b) {
return b == 0 ? a : gcd(b, a % b);
}
}
```
程序中,我们先使用Scanner类从控制台读取两个整数a和b,然后使用三元运算符计算它们的最大公约数。当a大于b时,我们使用递归调用gcd方法计算b和a%b的最大公约数;当b大于a时,我们使用递归调用gcd方法计算a和b%a的最大公约数。当a或b整除另一个数时,它们的最大公约数就是另一个数。
最后,我们将计算结果输出到控制台。
java输入两个数输出最大公约数
答案:可以使用辗转相除法求出两个数的最大公约数。具体步骤如下:
1. 用较大数除以较小数,得到余数
2. 把较小数作为被除数,余数作为除数,再次进行相除
3. 重复上述过程,直到余数为0为止
4. 此时,较小数即为最大公约数
示例代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int gcd = getGcd(a, b);
System.out.println(gcd);
}
private static int getGcd(int a, int b) {
if (b == 0) {
return a;
}
return getGcd(b, a % b);
}
}