加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

poj 3101 Astronomy 分数lcm+大数java

发布时间:2020-12-14 03:24:57 所属栏目:大数据 来源:网络整理
导读:import java.lang.reflect.Array;import java.math.BigInteger;import java.util.ArrayList;import java.util.Scanner;public class Main {static private ArrayListInteger Array0 = new ArrayListInteger();static private ArrayListInteger Array1 = new




import java.lang.reflect.Array;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Scanner;

public class Main {

	static private ArrayList<Integer> Array0 = new ArrayList<Integer>();
	static private ArrayList<Integer> Array1 = new ArrayList<Integer>();
	static private ArrayList<Integer> Array2 = new ArrayList<Integer>();
	static private int gcd(int a,int b)
	{
		return (b==0)?a:gcd(b,a%b);
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in = new Scanner(System.in);
		int n;
		n = in.nextInt();
		
		boolean flag = false;
		for(int i=0;i<n;i++)
		{
			int x = in.nextInt();
			Array0.add(x);
		}
		
		Array1.add(0);
		Array2.add(0);
		for(int i=1;i<Array0.size();i++)
		{
			Array1.add(i,Array0.get(0)*Array0.get(i));
			Array2.add(i,2*Math.abs(Array0.get(i)-Array0.get(0)));
			int t = gcd(Array1.get(i),Array2.get(i));
			Array1.set(i,Array1.get(i)/t);
			Array2.set(i,Array2.get(i)/t);
		}
		int resb=0;
		for(int i=1;i<n;i++)
		{
			resb = gcd(resb,Array2.get(i));
		}
		BigInteger resa = new BigInteger(""+Array1.get(1));
		for(int i=1;i<n;i++)
		{
			BigInteger x = new BigInteger(""+Array1.get(i));
			
			resa = resa.multiply(x.divide(x.gcd(resa)));
		}
		BigInteger resbb = new BigInteger(""+resb);
		resa = resa.divide(resa.gcd(resbb));
		resbb = resbb.divide(resbb.gcd(resa));
		System.out.println(resa+" "+resbb);
	}
	
}

 

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读