总结
找重复
1.找到一种划分方法
2.找到递推公式或者等价转换,都是父类问题转换为子类问题
找变的量
变化的量通常作为参数
找出口
所有的循环都可以改成递归
源代码
package shuyan1;
import java.util.*;
//求最大公约数
// 辗转相除法
public class e {
public static void main(String[] args) {
System.out.println(yue1(228,123));
}
/* 递归算法
最大公约数yue1(m,n)=yue1(n,m%n)
例如:求4453和5767的最大公约数时,可用辗转相除法.
5767÷4453=1余1314
4453÷1314=3余511
1314÷511=2余292
511÷292=1余219
292÷219=1余73
219÷73=3
于是得知,5767和4453的最大公约数是73.
*/
static int yue1(int m,int n) {
if(n==0)
return m;
return yue1(n,m%n);
// 辗转相除法
}
}