poj 3101 Astronomy (java 分数的最小公倍数 gcd)
题目链接
要用大数,看了别人的博客,用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)相关推荐
- POJ 3101 Astronomy (角速度啊,高中物理啊。。。T_T)
第一次做训练计划的时候没有做出来...回头又看了看, 就是个高中物理题.已知周期,求多长时间运行到一条线上. 已知每个行星的角速度为vi = 2*π/Ti,选择一个行星T0作为坐标系,则其他行星的相对 ...
- POJ NOI MATH-7828 最大公约数与最小公倍数
问题链接:POJ NOI MATH-7828 最大公约数与最小公倍数. 总时间限制: 1000ms 内存限制: 65536kB 描述 两个正整数的最大公约数是G,最小公倍数是L,它们的和最小是多少? ...
- hdu 1713求分数的最小公倍数
题意中的圈数和天数说反了 #include<stdio.h> __int64 gcd(__int64 a,__int64 b) {/* 比如4/3 3/5 通分20/15 9/15 所以这 ...
- 关于如何求分数的最小公倍数和最大公约数
1.分数的最小公倍数: 已知两个分数求最小公倍数首先需要求出两个分数的最简形式a/b,c/d 然后求出x/y x为a c的最小公倍数 y为b d的最大公约数 #include <stdio.h& ...
- 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 ...
- java分数的加法_分数加法
分数加法 时间限制 : 1sec / 空间限制: 256MB 题意: 给你2个分数,求他们的和,并要求和为最简形式. 输入: 一行,包含四个正整数a,b,c,d(0 输出: 输出两个整数e和f,用一个 ...
- java分数表示_表示Java分数的最佳方法?
小编典典 碰巧的是不久前我写了一个BigFraction类,用于解决Euler项目问题.它保留了BigInteger分子和分母,因此它将永远不会溢出.但是,对于许多你永远不会溢出的操作来说,这会有点慢 ...
- 用java编写数组最小公倍数_java求多个数字的最小公倍数
1.[代码][Java]代码 public class TestLCM { /** * 1-N的最小公倍数 * LCM:最小公倍数 * 说明:循环并依次整除,当全部整除时得到的值即为最小公倍数 */ ...
- HDU 1713 相遇周期(求两个分数的最小公倍数)
相遇周期 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
最新文章
- Spring Boot + Mybatis 多模块(module)项目的完整搭建教程
- Cannot open D:\Program Files\Anaconda3\Scripts\pip-script.py 错误解决办法
- Linux内核对设备树的处理
- sqlserver2000 mdf 文件导入
- Scrapy将爬取的段落整合为字符串
- mysql怎么多重查询_mysql基于值的多重查询
- 【报告分享】2021开放数字资产价值报告:数字化孕育新的发展动能.pdf(附下载链接)...
- 盒子背景颜色(HTML、CSS)
- CANTest软件安装成功经验
- 如何快速算出一个数的n次方?
- Input length must be multiple of 8 when decrypting with padded cipher 错误
- class uesrfun.php,帝国cms教程:在列表页面批量添加Tags的方法
- bootstrap案例解析
- python中使用函数的优点是什么_python函数式编程是什么?
- 从金蝶云星空到旺店通·旗舰奇门通过接口配置打通数据
- 【金融风控-贷款违约预测】数据挖掘学习:5.模型融合
- 【mac】MacBook使用快捷键
- java发邮件需要什么意思_java 发送邮件需要开启什么服务
- 程序员成长系列--应该读的通用技术书籍列表
- 你的产品适不适合做微信小程序?你需要这篇产品逻辑分析
热门文章
- 支付宝二面:Mybatis 接口 Mapper 内的方法为啥不能重载吗?我直接懵逼了。。。
- Redis 实现延迟队列?深深被折服!!
- 新一代垃圾回收器ZGC的探索与实践
- 面试官:聊聊微信和淘宝扫码登录背后的实现原理?
- 备战618,京东如何保障系统稳定性?
- 我的梦想是十年内成为架构师,该怎么办?
- 分布式系统与消息的投递
- 框架:spring总结
- html中基本选择器的优先级,CSS_CSS中的各种选择器与样式优先级小结,优先级:由高到低(从上到下)- phpStudy...
- 排除计算机故障的顺序,计算机故障排除.ppt