求最大公约数用到的是辗转相除法。0和a的最大公约数仍然为a。
gcd(a,b) = gad(b,a mod b);
可以变为:
int gcd(int a, int b) {
return b!=0?gcd(b,a%b):a;
}
代码示例:
//输入两个数,输出这两个数的最大公约数
import java.util.Scanner;
public class Main {
private static int gcd(int a, int b) {
return b!=0?gcd(b,a%b):a;
}
public static void main(String[]args){
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
int y = sc.nextInt();
int gcdnum = gcd(x,y);
System.out.println(gcdnum);
}
}
运行效果:



