HDU1713 相遇周期(数学)
来源:互联网 发布:手机淘宝网址 编辑:程序博客网 时间:2024/06/05 03:21
hdoj1713 相遇周期(密码20178B)
相遇周期
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3717 Accepted Submission(s): 1906
Problem Description
2007年3月26日,在中俄两国元首的见证下,中国国家航天局局长孙来燕与俄罗斯联邦航天局局长别尔米诺夫共同签署了《中国国家航天局和俄罗斯联邦航天局关于联合探测火星-火卫一合作的协议》,确定中俄双方将于2009年联合对火星及其卫星“火卫一”进行探测。
而卫星是进行这些探测的重要工具,我们的问题是已知两颗卫星的运行周期,求它们的相遇周期。
而卫星是进行这些探测的重要工具,我们的问题是已知两颗卫星的运行周期,求它们的相遇周期。
Input
输入数据的第一行为一个正整数T, 表示测试数据的组数. 然后是T组测试数据. 每组测试数据包含两组正整数,用空格隔开。每组包含两个正整数,表示转n圈需要的天数(26501/6335,表示转26501圈要6335天),用'/'隔开。
Output
对于每组测试数据, 输出它们的相遇周期,如果相遇周期是整数则用整数表示,否则用最简分数表示。
Sample Input
226501/6335 18468/4229359/11479 15725/19170
Sample Output
81570078/75431415
分析:
数学题,网上很多解释发现有对有错,这里给出两个正确的解法。弱不会证明,dalao会的话请评论解释一下,在下感激不尽。
方法一:.先化简 n / t; a = LCM(t1,t2) , b = GCD(n1, n2), ans = a / b;
方法二: 先都通分->求分子的最小公倍数Q -> Q / 之前通分后的分母 -> 化简;
下面是我用方法一做的代码:
#include<stdio.h>int gcd(int x, int y){ return y == 0 ? x : gcd(y, x % y);}int lcm(int x, int y){ return x / gcd(x, y) * y;}int a1, b1, a2, b2;int T;char c;int main(){ scanf("%d", &T); while(T --) { scanf("%d%c%d %d%c%d", &a1, &c, &b1, &a2, &c, &b2); int advance1 = gcd(a1, b1); int advance2 = gcd(a2, b2); a1 /= advance1; b1 /= advance1; a2 /= advance2; b2 /= advance2; int z = lcm(a1, a2); int m = gcd(b1, b2); if(m == 1) printf("%d\n", z); else printf("%d/%d\n", z, m); }}
另外还有暴力解法弱也不会QAQ,这道题要怎么推出来,如果现场赛这题必栽,求推导过程~(抱拳,jpg)
这道题不需要long long int
阅读全文
0 0
- HDU1713 相遇周期(数学)
- HDU1713--相遇周期 HDU(110)
- hdu1713 相遇周期
- HDU1713 相遇周期
- hdu1713 相遇周期
- hdu1713-相遇周期
- hdu1713相遇周期
- HDU1713 最小周期
- 相遇周期
- 相遇周期
- HDU 1713 相遇周期(数学 最大公约数与最小公倍数)
- HDOJ1713(相遇周期)(有点坑)
- hdu 1713 相遇周期 (GCD & LCM)
- HDU 1713 相遇周期
- HDU - 1713 相遇周期
- hdu 相遇周期
- HDU 1713 相遇周期
- HDU 1713 相遇周期
- OpenJudge百炼-2981-大整数加法-C语言-高精度计算
- 2、操作系统内存管理——分页
- 数学规律题
- 区块链解读7-区块链1.0(比特币技术)
- 迪杰斯特拉算法
- HDU1713 相遇周期(数学)
- API学习Date
- 开创我的IT战略之路
- 《深入理解Java虚拟机学习笔记之Java内存区域与内存溢出异常》
- 关于“1900年至2100年公历、农历互转的js代码”的详细分析
- mnist整合mobilenet
- mysql和分支mariadb
- JS递归
- 8月12日集训