/***
* 欧几里得算法:
* gcd(m,n) = gcd(n,m mod n) (m mod n 表示 m 除以 n 的余数)
* 如果m mod n == 0 则 n为结果
* @param m
* @param n
* @return
*/publicstaticintalg1(int m,int n){if(n ==0){return m;}else{returnalg1(n, m % n);}}publicstaticvoidmain(String[] args){
System.out.println(alg1(60,24));//12}
习题
求根号n的向下取整的值,n为非负整数
/***
* 思路1:从1开始尝试,和自身相乘,如果结果不大于n,自增,如果结果大于n,结果为n-1
* 思路2:从n/2向上取整开始尝试
* @param n
*/publicstaticintalg1(int n){int num =1;while(num * num < n){
num ++;}return num * num == n ? num : num -1;}publicstaticvoidmain(String[] args){
System.out.println(alg1(10));//3}