本帖最后由 田建 于 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);
- }
- }
复制代码 |
|