博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 3101 Astronomy (角速度啊,高中物理啊。。。T_T)
阅读量:5156 次
发布时间:2019-06-13

本文共 1597 字,大约阅读时间需要 5 分钟。

  第一次做训练计划的时候没有做出来。。。回头又看了看, 就是个高中物理题。已知周期,求多长时间运行到一条线上。

已知每个行星的角速度为vi = 2*π/Ti,选择一个行星T0作为坐标系,则其他行星的相对速度为vi' = (T0 - Ti)*2π/(T0*Ti)。则角度绕过半个圆周的时间为Ti' = π/vi' = (T0*Ti)/((T0 - Ti)*2)

这样就是求所有Ti‘的分子的LCM和所有Ti’分母的GCD。

ps:注意两点,1、去掉周期相同的,2、用BigInteger。

 

View Code
import java.util.*;import java.io.*;import java.math.*;public class Main {    final static int N = 1024;    public static BigInteger[] fz = new BigInteger[N];    public static BigInteger[] fm = new BigInteger[N];        public static int[] t = new int[N];    public static int[] tt = new int[N];        public static int gcd(int a, int b) {        return b == 0 ? a : gcd(b, a % b);    }        public static void main(String[] args) {        Scanner cin = new Scanner(System.in);        int n, i, a, b, g;        n = cin.nextInt();        for(i = 0; i< n; ++i) {            t[i] = cin.nextInt();                    }        Arrays.sort(t, 0, n);        int m = 0;        tt[m++] = t[0];        for(i = 1; i < n; ++i) {            if(t[i] != t[i-1])    tt[m++] = t[i];        }        for(i = 1; i < m; ++i) {            a = tt[i]*tt[0];            b = (tt[i] - tt[0])*2;            g = gcd(a, b);            fz[i] = BigInteger.valueOf(a/g);            fm[i] = BigInteger.valueOf(b/g);        }        BigInteger t1 = fz[1], t2 = fm[1], gg, aa;        for(i = 2; i < m; ++i) {            aa = t1.multiply(fz[i]);            gg = t1.gcd(fz[i]);            t1 = aa.divide(gg);                        t2 = t2.gcd(fm[i]);        }        System.out.println(t1 + " " + t2);    }}

 

转载于:https://www.cnblogs.com/vongang/archive/2012/10/30/2745781.html

你可能感兴趣的文章
转:Linux设备树(Device Tree)机制
查看>>
iOS 组件化
查看>>
(转)Tomcat 8 安装和配置、优化
查看>>
(转)Linxu磁盘体系知识介绍及磁盘介绍
查看>>
tkinter布局
查看>>
命令ord
查看>>
Sharepoint 2013搜索服务配置总结(实战)
查看>>
博客盈利请先考虑这七点
查看>>
使用 XMLBeans 进行编程
查看>>
写接口请求类型为get或post的时,参数定义的几种方式,如何用注解(原创)--雷锋...
查看>>
【OpenJ_Bailian - 2287】Tian Ji -- The Horse Racing (贪心)
查看>>
Java网络编程--socket服务器端与客户端讲解
查看>>
List_统计输入数值的各种值
查看>>
学习笔记-KMP算法
查看>>
Timer-triggered memory-to-memory DMA transfer demonstrator
查看>>
跨域问题整理
查看>>
[Linux]文件浏览
查看>>
64位主机64位oracle下装32位客户端ODAC(NFPACS版)
查看>>
获取国内随机IP的函数
查看>>
今天第一次写博客
查看>>