辗转相除法求最大公约数
class gongyueshu{
int gcd1(int a,int b) {
//迭代实现
while(b!=0) {
int temp=a%b;
a=b;
b=temp;
}
return a;
}
int gcd2(int a,int b) {
//递归实现
if(b==0) {
return a;
}
return gcd2(b,a%b);
//不加 return 会报错
}
}
public class 最大公约数 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a=8251,b=6105;
gongyueshu c = new gongyueshu();
System.out.println("迭代实现的结果为"+c.gcd1(a,b));
System.out.println("递归实现的结果为"+c.gcd2(a,b));
}
}
//输出结果为
// 迭代实现的结果为37
// 递归实现的结果为37
==============================================================================
java实现尾递归,好像必须要在函数名前面加return,我是真不喜欢用java