题目要求
输入两个数字,求他们的最大公约数
所用方法:辗转相除法
牛客原题
https://www.nowcoder.com/practice/cf4091ca75ca47958182dae85369c82c?tpId=0
实现代码
//格式1
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int a = s.nextInt();
int b = s.nextInt();
int c = a % b;
while(c!=0){
a = b;
b = c;
c = a % b;
}
System.out.println(b);
}
}
//格式2
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int a = s.nextInt();
int b = s.nextInt();
//如果不进入while内部,即a%b==0,则可知a能整除b,最大公约数就是b本身
int c = b;
while(a%b!=0){
c = a % b;
a = b;
b = c;
}
System.out.println(c);
}
}
两种格式都没必要去刻意比较两个数字的大小再计算。如果a<b, 当做取余数操作后,再赋值,两个数的值已经发生了转换
输出结果
12 28
4
48 24
24
觉得写得不错的话点个赞呗😊