两个数的最大公约数。一个典型的解决方案是欧几里德,叫欧几里德算法。
原理:(m,n)代表m和nGCD,和m>n。然后,(m,n)=(n,m%n)=.....直到余数为0.
码如下面:
public class GCD { public static int gcd(int m, int n){ if(m*n<0){ return -1; } if(n==0){ return m; } if(m==0){ return n; } //辗转相除法 if(m<n){ int temp=m; m=n; n=temp; } int r = m%n; while(r!=0){ m=n; n=r; r=m%n; } return n; } public static void main(String[] args){ System.out.println(gcd(100, 45)); } }
成绩:5
版权声明:本文博主原创文章,博客,未经同意不得转载。