题目链接

要用大数,看了别人的博客,用java写的。

题意:求n个运动周期不完全相同的天体在一条直线上的周期。

分析:两个星球周期为a,b。则相差半周的长度为a*b/(2*abs(a-b)),对于n个只需求这n个

分数的最小公倍数即可。
分数的最小公倍数 = 分子的最小公倍数/分母的最大公约数
 1 import java.util.*;
 2 import java.math.*;
 3 public class Main {
 4     public static int [] t = new int [1200];
 5     public static int [] tt = new int [1200];
 6     public static BigInteger [] fz = new BigInteger [1200];
 7     public static BigInteger [] fm = new BigInteger [1200];
 8
 9     public static int gcd(int a, int b){
10         return b==0?a:gcd(b, a%b);
11     }
12     public static void main(String args[]){
13     int n, m;
14      Scanner cin=new Scanner(System.in);
15      n = cin.nextInt();
16      for(int i = 0; i < n; i++)
17          t[i] = cin.nextInt();
18      Arrays.sort(t, 0, n);   //对数组排序
19      m = 0;
20      tt[m++] = t[0];
21      for(int i = 1; i < n; i++)
22          if(t[i]!=t[i-1])
23              tt[m++] = t[i];
24      for(int i = 1; i < m; i++){
25          int a = tt[i]*t[0];
26          int b = 2*(tt[i]-tt[0]);
27          int g = gcd(a, b);
28          fz[i] = BigInteger.valueOf(a/g);
29          fm[i] = BigInteger.valueOf(b/g);
30      }
31      BigInteger t1, t2;
32      t1 = fz[1]; t2 = fm[1];
33      for(int i = 2; i < m; i++)
34      {
35          BigInteger aa = t1.multiply(fz[i]);
36          BigInteger gg = t1.gcd(fz[i]);
37          t1 = aa.divide(gg);
38          t2 = t2.gcd(fm[i]);
39      }
40      System.out.println(t1+" "+t2);
41     }
42 }

转载于:https://www.cnblogs.com/bfshm/p/3860044.html

poj 3101 Astronomy (java 分数的最小公倍数 gcd)相关推荐

  1. POJ 3101 Astronomy (角速度啊,高中物理啊。。。T_T)

    第一次做训练计划的时候没有做出来...回头又看了看, 就是个高中物理题.已知周期,求多长时间运行到一条线上. 已知每个行星的角速度为vi = 2*π/Ti,选择一个行星T0作为坐标系,则其他行星的相对 ...

  2. POJ NOI MATH-7828 最大公约数与最小公倍数

    问题链接:POJ NOI MATH-7828 最大公约数与最小公倍数. 总时间限制: 1000ms 内存限制: 65536kB 描述 两个正整数的最大公约数是G,最小公倍数是L,它们的和最小是多少? ...

  3. hdu 1713求分数的最小公倍数

    题意中的圈数和天数说反了 #include<stdio.h> __int64 gcd(__int64 a,__int64 b) {/* 比如4/3 3/5 通分20/15 9/15 所以这 ...

  4. 关于如何求分数的最小公倍数和最大公约数

    1.分数的最小公倍数: 已知两个分数求最小公倍数首先需要求出两个分数的最简形式a/b,c/d 然后求出x/y x为a c的最小公倍数 y为b d的最大公约数 #include <stdio.h& ...

  5. GCD and LCM Aizu - 0005(辗转相除)+GCD LCM Inverse POJ - 2429(java或【Miller Rabin素数測试】+【Pollar Rho整数分解】)

    题目:GCD and LCM Aizu - 0005 Write a program which computes the greatest common divisor (GCD) and the ...

  6. java分数的加法_分数加法

    分数加法 时间限制 : 1sec / 空间限制: 256MB 题意: 给你2个分数,求他们的和,并要求和为最简形式. 输入: 一行,包含四个正整数a,b,c,d(0 输出: 输出两个整数e和f,用一个 ...

  7. java分数表示_表示Java分数的最佳方法?

    小编典典 碰巧的是不久前我写了一个BigFraction类,用于解决Euler项目问题.它保留了BigInteger分子和分母,因此它将永远不会溢出.但是,对于许多你永远不会溢出的操作来说,这会有点慢 ...

  8. 用java编写数组最小公倍数_java求多个数字的最小公倍数

    1.[代码][Java]代码 public class TestLCM { /** * 1-N的最小公倍数 * LCM:最小公倍数 * 说明:循环并依次整除,当全部整除时得到的值即为最小公倍数 */ ...

  9. HDU 1713 相遇周期(求两个分数的最小公倍数)

    相遇周期 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

最新文章

  1. Spring Boot + Mybatis 多模块(module)项目的完整搭建教程
  2. Cannot open D:\Program Files\Anaconda3\Scripts\pip-script.py 错误解决办法
  3. Linux内核对设备树的处理
  4. sqlserver2000 mdf 文件导入
  5. Scrapy将爬取的段落整合为字符串
  6. mysql怎么多重查询_mysql基于值的多重查询
  7. 【报告分享】2021开放数字资产价值报告:数字化孕育新的发展动能.pdf(附下载链接)...
  8. 盒子背景颜色(HTML、CSS)
  9. CANTest软件安装成功经验
  10. 如何快速算出一个数的n次方?
  11. Input length must be multiple of 8 when decrypting with padded cipher 错误
  12. class uesrfun.php,帝国cms教程:在列表页面批量添加Tags的方法
  13. bootstrap案例解析
  14. python中使用函数的优点是什么_python函数式编程是什么?
  15. 从金蝶云星空到旺店通·旗舰奇门通过接口配置打通数据
  16. 【金融风控-贷款违约预测】数据挖掘学习:5.模型融合
  17. 【mac】MacBook使用快捷键
  18. java发邮件需要什么意思_java 发送邮件需要开启什么服务
  19. 程序员成长系列--应该读的通用技术书籍列表
  20. 你的产品适不适合做微信小程序?你需要这篇产品逻辑分析

热门文章

  1. 支付宝二面:Mybatis 接口 Mapper 内的方法为啥不能重载吗?我直接懵逼了。。。
  2. Redis 实现延迟队列?深深被折服!!
  3. 新一代垃圾回收器ZGC的探索与实践
  4. 面试官:聊聊微信和淘宝扫码登录背后的实现原理?
  5. 备战618,京东如何保障系统稳定性?
  6. 我的梦想是十年内成为架构师,该怎么办?
  7. 分布式系统与消息的投递
  8. 框架:spring总结
  9. html中基本选择器的优先级,CSS_CSS中的各种选择器与样式优先级小结,优先级:由高到低(从上到下)- phpStudy...
  10. 排除计算机故障的顺序,计算机故障排除.ppt