qq_37367978 2017-01-19 04:58 采纳率: 0%
浏览 843

用ava怎么写出这个程序我是新手求大神讲解。

题目:输入两个正整数m和n,求其最大公约数和最小公倍数。

/**在循环中,只要除数不等于0,用较大数除以较小的数,将小的一个数作为下一轮循环的大数,取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为0,返回较大的数,此数即为最大公约数,最小公倍数为两数之积除以最大公约数。* /

  • 写回答

4条回答 默认 最新

  • 无道loading 2017-01-19 05:08
    关注
     import java.util.*;
    public    class     lianxi06     {  
    public static void main(String[] args) {
      int     a ,b,m;
      Scanner s = new Scanner(System.in);
      System.out.print( "键入一个整数: "); 
      a = s.nextInt();System.out.print( "再键入一个整数: "); 
      b = s.nextInt();      
      // new 一个类 目的是调用类中的方法 deff
       deff cd = new deff();      
       // 调用类中的方法 deff 获得最大公约数
      m = cd.deff(a,b);      
    
      // 计算最小公倍数 ,这个纯粹是数学知识
      int n = a * b / m;      
      System.out.println("最大公约数: " + m);      
      System.out.println("最小公倍数: " + n); 
     }
    }
    
    class deff {
     public int deff(int x, int y) {
      int t;
      // 如果x<y 则将x和y的值互换
      if (x < y) {
       t = x;
       x = y;
       y = t;
      }
    
      //程序执行到这里 x肯定大于或者等于y
    
      while (y != 0) {
       // 如果x和y相等,那么他们的最大公约数是x
       if (x == y){
        return x;
       }
       // 当x和y不相等的时候 将y的值赋值给x 将原x的值和y的余数赋值给y
       // 这时候x依然大于或者等于y 接着进行下一轮计算
       // 一直循环下去,当k为0的时候,x就是最大公约数了
       else {
        int k = x % y;
        x = y;
        y = k;
       }
      }
      return x;
     }
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 Stata 面板数据模型选择
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用