JAVA使用方法体 求解 两个数的最小公约数、最小公倍数

1.如果 你是带学生,JAVA上机还没有学到方法体。可以关掉这个帖子了。

代码如下(示例):

package day04;

import java.util.Scanner;

public class TTest01 {
    
    
	public static void main(String[] args) {
    
    
		Scanner sc = new Scanner(System.in);
		int k1 = inputNum(sc);
		int k2 = inputNum(sc);
		System.out.println(k1);
		System.out.println(k2);
		
		int min = k1>k2?k1:k2;
		Math.min(k1, k2);
		for(int i =1;i<=min;i++) {
    
    
			if(k1%i==0&&k2%i==0) {
    
    
				System.out.println(k1+"和"+"k2"+"的最小公约数为:"+i);
				break;
			}
		}
		
		int begin = Math.max(k1, k2);
		int end = (k1*k2);
		for(int i =begin;i<end;i++) {
    
    
			if(i%k1==0&&i%k2==0) {
    
    
				System.out.println(k1+"和"+k2+"的最小公倍数为:"+i);
				break;
			}
		}
		
	}

	public static int inputNum(Scanner sc) {
    
    
		int k = 0;
		while (true) {
    
    
			System.out.println("请输入两个正数");
			String ss = sc.nextLine();
			try {
    
    
				k = Integer.parseInt(ss);
				if (k > 0)
					break;
				System.out.println("输入的必须是正数");

			} catch (Exception e) {
    
    
				System.out.println("输入的数据不合法");
			}
		}
		return k;
	}
}

2.主题主要由三部分构成:main函数(主函数)、输入两个数字的方法体(intputNum)

1、主函数开始运行,首先调用输入的方法体;在inputNum方法体中 输入需要求解的两个数字:k1、k2;并且对他们进行判定;是否为负数、是否为int类型的输入。如果两个if都通过,主函数继续执行
进行求解。
2、首先是求解公约数,公约数的定义自行百度。求解的最小公约数一定是比k1,k2两个数中最小的数字小。换个说法,就是最小公约数的范围上线就是k1和k2中较小的,i~min(k1,k2)。写一个for循环直到k1,k2对变量I进行求余为零,对应的I就是最小公约数。
3、最小公倍数,同理定义自行百度,公倍数的范围就是k1,k2较大的一个到k1,k2的乘积,即:max(k1,k2)~(k1*k2),后面的东西都是一个道理,代表最小公倍数的变量i分别对k1,k2求余,都为零,就是最小公倍数。

猜你喜欢

转载自blog.csdn.net/weixin_42437438/article/details/112340702
今日推荐