A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

做了一道练习题:输入两个正整数m和n,求其最大公约数和最小公倍数。

  1. public class Demo {
  2.         public static void main(String args[]){
  3.        gcdlcm a =new gcdlcm();
  4.        System.out.println("两数的最大公约数是:"+a.gcd(10, 16));
  5.        System.out.println("两数的最小公倍数是:"+a.lcm(16, 10));
  6.    }               
  7. }
  8. class gcdlcm{
  9.         int gcd(int m,int n){
  10.                 if(m<n){   //这个判断是为了将大数放在前面
  11.                         int temp=n;
  12.                         n=m;
  13.                         m=temp;                       
  14.                 }
  15.                 if(m%n==0){   
  16.                         return n;
  17.                 }
  18.                 else{
  19.                         m%=n;
  20.                         return gcd(m,n);
  21.                 }       
  22.         }
  23.         int lcm(int m,int n){
  24.                 int i=1;
  25.                 if(m<n){   //这个判断是为了将大数放在前面
  26.                         int temp=n;
  27.                         n=m;
  28.                         m=temp;                       
  29.                 }
  30.                 int lcm=m;
  31.                 while(lcm%n!=0){
  32.                         lcm=m*i;
  33.                         i++;
  34.                 }
  35.                 return lcm;
  36.         }
  37. }
复制代码



6 个回复

倒序浏览
嗯 很厉害,悟了,顿悟
回复 使用道具 举报
好厉害的样子:funk:
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
学习了,谢谢分享
回复 使用道具 举报
还没仔细分析过类似问题,谢谢分享!
回复 使用道具 举报
好东西!赞一个!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马