黑马程序员技术交流社区

标题: 欧几里得算法的问题! [打印本页]

作者: 田建    时间: 2012-6-24 10:54
标题: 欧几里得算法的问题!
本帖最后由 田建 于 2012-6-24 14:58 编辑

今天写了下欧几里得算法,求两个数的最大公约数,代码写得出来,但是不是十分明白为什么这样求出来的是它们的最大公约数:
  1. import java.util.*;
  2. class Example0408
  3. {
  4. public static void main(String[] args)
  5. {
  6. Random random=new Random();
  7. float x=random.nextFloat();
  8. int m=Math.round(999*x+2);
  9. float y=random.nextFloat();
  10. int n=Math.round(999*y+2);
  11. System.out.println("m="+m+"\t\tn"+n);
  12. while(m>0)
  13. {
  14. if(m<n)
  15. {
  16. int temp=m;
  17. m=n;
  18. n=temp;
  19. System.out.println("m="+m+"\t\tn="+n);
  20. }
  21. m-=n;
  22. }
  23. System.out.println("Theg.c.d of m and n is"+n);
  24. }

  25. }
复制代码

作者: 田建    时间: 2012-6-24 14:23
黑马_张佳超 发表于 2012-6-24 13:45
两个数的最大公约数,就是能整除这两个数的最大数。
例如:
28和8的最大公约数,大家都知道是4。用其中较大 ...

恩恩   想明白了,多谢点拨!




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