黑马程序员技术交流社区

标题: 最大公约数和最小公倍数-----更相减损之术 [打印本页]

作者: 齐天大圣    时间: 2015-7-16 01:08
标题: 最大公约数和最小公倍数-----更相减损之术
public class Test_最大公约数最小公倍数 {
        public static void main(String[] args) {
                print(5550, 4);
        }
        private static void print(int m, int n) {
                // 最大公约数更相减损之术
                int a = m;
                int b = n;
                for (int x = 0; x < m + n; x++) {
                        if (a == b) {
                                System.out.println("最大公约数=" + a);
                                System.out.println("最小公倍数="+m*n/a);
                                break;
                        }
                        if (a < b) {
                                int t = a;
                                a = b;
                                b = t;
                        }
                        int t = b;
                        a = a - b;
                        b = t;
                }
        }
}



作者: 齐天大圣    时间: 2015-7-16 01:12
我倒不讨喜欢崭除法
作者: 齐天大圣    时间: 2015-7-16 01:13
// 崭除法
        private static void print1(int m, int n) {
                if (m == 0 || n == 0) {
                        System.out.println(-1);
                }
                if (m == n) {
                        System.out.println(m);
                }
                if (m < n) {
                        int t = m;
                        m = n;
                        n = t;
                }
                while (m != 0) {
                        //        int t = m%n;
                        int t=n%m;
                                n = m;
                                m = t;
                }
                int yue=n;
                System.out.println(yue);
        }
作者: 齐天大圣    时间: 2015-7-16 01:19
求解3个数的公约数,崭除法好还是更相减损之术好些?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2