院长Nelson 发表于 2021-3-3 11:26:32

请大家帮我看看这段代码有什么问题吗?

为什么我得不到最小公倍数。。如果要修改的话 怎么修改呢??
在线等!!救救孩子吧!!

院长Nelson 发表于 2021-3-3 11:27:14

问题出在第17行代码。。。可能其他的也有问题,孩子看不出来,跪求大佬帮助!!

洋洋痒 发表于 2021-3-3 11:34:40

代码发一下呗

院长Nelson 发表于 2021-3-3 11:36:37

洋洋痒 发表于 2021-3-3 11:34
代码发一下呗

啊。。我发了呀。。你们那边看不到吗

洋洋痒 发表于 2021-3-3 11:37:26

院长Nelson 发表于 2021-3-3 11:36
啊。。我发了呀。。你们那边看不到吗

{:5_104:}我说可以复制粘贴的那种

院长Nelson 发表于 2021-3-3 11:38:47

洋洋痒 发表于 2021-3-3 11:37
我说可以复制粘贴的那种

/**
* 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
*/
public class Subject6 {
    public static void main(String[] args) {
      Scanner scanner = new Scanner(System.in);
      System.out.println("请输入你要求最大公约数和最小公倍数的两个数字");
      System.out.println("请输入第一个数字m:");
      int a = scanner.nextInt();
      System.out.println("请输入第二个数字n:");
      int b = scanner.nextInt();
      //求最小公倍数
      System.out.println("最小公倍数为:" + a * b / greartestCommonDivisor(a, b));
    }

    /**
   * 求m和n的最大公约数:
   * 辗转相除法求最大公约数:›
   *
   * @return
   */
    public static int greartestCommonDivisor(int m, int n) {
      if (m > n) {
            if (m % n == 0) {
                System.out.println("最大公约数为:" + n);
            } else {
                greartestCommonDivisor(n, m % n);
            }
      } else {
            greartestCommonDivisor(n, m);
      }
      return n;
    }
}

院长Nelson 发表于 2021-3-3 11:39:23

院长Nelson 发表于 2021-3-3 11:38
/**
* 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
*/


{:5_100:}是这样吗

洋洋痒 发表于 2021-3-3 12:00:59

    public static int greartestCommonDivisor(int m, int n) {
            int temp=1;
            while(temp!=0)
            {
                    temp=m%n;
                    m=n;
                    n=temp;
            }
            return m;
    }

洋洋痒 发表于 2021-3-3 12:25:46

你的代码用的递归
return greartestCommonDivisor(n, m % n);
return greartestCommonDivisor(n, m);
即可
页: [1]
查看完整版本: 请大家帮我看看这段代码有什么问题吗?