求最大公约数用到的是辗转相除法。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); }}
运行效果: