黑马程序员技术交流社区
标题:
欧几里得算法的问题!
[打印本页]
作者:
田建
时间:
2012-6-24 10:54
标题:
欧几里得算法的问题!
本帖最后由 田建 于 2012-6-24 14:58 编辑
今天写了下欧几里得算法,求两个数的最大公约数,代码写得出来,但是不是十分明白为什么这样求出来的是它们的最大公约数:
import java.util.*;
class Example0408
{
public static void main(String[] args)
{
Random random=new Random();
float x=random.nextFloat();
int m=Math.round(999*x+2);
float y=random.nextFloat();
int n=Math.round(999*y+2);
System.out.println("m="+m+"\t\tn"+n);
while(m>0)
{
if(m<n)
{
int temp=m;
m=n;
n=temp;
System.out.println("m="+m+"\t\tn="+n);
}
m-=n;
}
System.out.println("Theg.c.d of m and n is"+n);
}
}
复制代码
作者:
田建
时间:
2012-6-24 14:23
黑马_张佳超 发表于 2012-6-24 13:45
两个数的最大公约数,就是能整除这两个数的最大数。
例如:
28和8的最大公约数,大家都知道是4。用其中较大 ...
恩恩 想明白了,多谢点拨!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2