一.欧几里得
欧几里得算法,又称辗转相除法: 如果m>n,m和n的最大公约数=n和 m%n的最大公约数
证明过程:

递归实现:
public class Gcd {
public int gcd(int m,int n){
if (n==0){
return m;
}else {
return gcd(n,m%n);
}
}
public static void main(String[] args) {
Gcd gcd = new Gcd();
int n = gcd.gcd(66, 55);
System.out.println(n);
}
}
非递归:
public class Gcd {
public int directGcd(int m,int n){
while (n!=0){
int mod = m % n;
m=n;
n=mod;
}
return m;
}
public static void main(String[] args) {
Gcd gcd = new Gcd();
// int n = gcd.gcd(66, 55);
int n = gcd.directGcd(66, 33);
System.out.println(n);
}
}
二.阶乘
20!=20*19*18...3*2*1;
public class Factorial {
public int factorial(int n){
if (n==1){
return n;
}else {
return n*factorial(n-1);
}
}
public static void main(String[] args) {
Factorial factorial=new Factorial();
System.out.println(factorial.factorial(15));
}
}
1294

被折叠的 条评论
为什么被折叠?



