之前用C语言写过求最大公约数的博客,我发现可以用更简单、明了的代码来实现,这次使用java来完成
import java.util.Scanner;//调用Scanner类,从键盘上获取数据
public class code {
public static void main(String[] args){
Scanner scan=new Scanner(System.in);//Scanner类的使用
int a=scan.nextInt();//从键盘上输入a
int b=scan.nextInt();
System.out.println(fun(a,b));
}
public static int fun(int a,int b)//求最大公约数的方法
{
int tmp=0;
while(a%b!=0)
{
tmp=a%b;
a=b;
b=tmp;
}
return b;
}
}
在上面求最大公约数的fun方法中,先定义一个变量tmp,当a%b!=0的时候进入循环(如果a小于b,a%b的值是a,进入循环后相当于交换a,b的值,所以代码中不需要判断a,b谁大谁小),进入循环后把a%b的值赋给tmp,b赋给a,tmp赋给b,一直循环直到a%b==0时返回b.
举个例子吧???
如果输入a=4;b=2;那直接返回b,没有问题
如果是a=2;b=4;这时候进入while循环,a%b的值是a,即tmp等于a,后面把b赋给a,tmp赋给b(相当于交换大小,让a是大值)