首页 > 代码库 > 从键盘输入n个整数,求它们的最小公倍数

从键盘输入n个整数,求它们的最小公倍数

题目:从键盘输入n个整数,求它们的最小公倍数。

例如输入4,再输入2,4,6,8四个数求最小公倍数。

思路:从键盘输入4,将输入的字符串4转成int,再输入2,4,6,8,将输入的字符串用","分割开来,装入一个字符串数组,

   如果数组的长度不等于之前得到的int,抛异常给Exception e,创建一个字符串数组,长度为4, 把字符串数组

   里的元素装到int数组里,做一个for循环,拿i分别除数组里的每一个数,如果i能整除数组里的每一个数,i就是最

   小公倍数。

代码如下:

package zuoye;

import java.util.Arrays;
import java.util.Scanner;

//2017.03.16 by 小方

public class X0316 {
    public static void main(String[] args) {
        while(true){
            Scanner scan=new Scanner(System.in);
            System.out.println("您想输入几位数:");
            String s3=scan.nextLine().trim();
        
            if(s3.equals("exid")) break;
            int a3=Integer.parseInt(s3);
            
            try{
                System.out.println("请输入几位整数:");
                String s=scan.nextLine().trim();
        
                if(s.equals("exid")) break;
                String [] s1=s.split(",");
                
                if(s1.length!=a3)throw new Exception() ;
                   int [] a=new int[s1.length];
                   for(int j=0;j<s1.length;j++){
                    a[j]=Integer.parseInt(s1[j]);
                   }
                   
                   int result = 0;
                    for (int i = 1; i < Integer.MAX_VALUE; i++) {
                        int n = a.length;
                        while(n > 0) {
                            int count = 0;
                        
                            for(int x : a){
                                if(i%x!=0){
                                    break;
                                }else{
                                    count ++;
                                }
                            }
                            if(count==a.length){
                                result = i;
                                break;
                            }
                            n --;
                        }
                        if(result > 0){
                            System.out.println(Arrays.toString(a)+"的最小公倍数为:"+result);
                            break;
                        }
                    }  
            }
            catch(Exception e){
                System.out.println("输入无效");
            }
            
        }
    }
}

运行结果如下:

技术分享

从键盘输入n个整数,求它们的最小公倍数