2028-最小公倍数プラス(java)

ここに画像の説明を挿入します
アイデア:N数の最小公倍数は、2つの数の最小公倍数を見つけることに単純化し、次いでNをループ、および最小公倍数を見つけることは最大公約数を必要とすることができ、式は検索/ * B最大の公約数の、タイトルは最終出力は32ビットの整数であることを必要とするため、中にオーバーフローを防止するために、あなたはにプログラムで宣伝を変更することができます:/最大公約数* B ;

import java.util.*;
public class Main {
    
    
public static void main(String[] args) {
    
    
	Scanner a=new Scanner(System.in);
	while(a.hasNext())
	{
    
    
		int n=a.nextInt();
		int gongbei=0,l=0;
		int[] arr=new int[n];
		for(int i=0;i<n;i++)					//向数组中输入数据
		{
    
    
			arr[i]=a.nextInt();
		}
		for(int j=0;j<n;j++)					//用for循环遍历数组中所有的数
		{
    
    
			if(j<n-1)
			{
    
    
				gongbei=re(arr[j],arr[j+1]);
				arr[j+1]=gongbei;
			}
		}
		System.out.println(gongbei);
	}
}
static int re(int a,int b)						//求两数的最小公倍数
{
    
    
	return a/er(a,b)*b;							//题目假设最后的输出是一个32位的整数,为了防止溢出,就不要使用【(a*b)/最大公约数】了。
}
static int er(int a,int b) 						//求两数的最大公约数
{
    
    
	int h=0;
	if(a<b)										//调整a,b大小顺序
	{
    
    
		h=a;
		a=b;
		b=h;
	}
	int GongYue=a/b;
	if(a%b==0)
		GongYue=b;
	while(a%b>0)								//使用while循环用辗转相除法求出最大公约数。
	{
    
    
		a=a%b;
		if(a<b)
		{
    
    
			h=a;
			a=b;
			b=h;
		}
		if(a%b==0)
			GongYue=b;
	}
	return GongYue;
}
}

エラーが発生した場合は、訂正してください

おすすめ

転載: blog.csdn.net/weixin_45956604/article/details/113991905