HDU - 相遇周期
而卫星是进行这些探测的重要工具,我们的问题是已知两颗卫星的运行周期,求它们的相遇周期。
Input
输入数据的第一行为一个正整数T, 表示测试数据的组数. 然后是T组测试数据. 每组测试数据包含两组正整数,用空格隔开。每组包含两个正整数,表示转n圈需要的天数(26501/6335,表示转26501圈要6335天),用’/'隔开。
Output
对于每组测试数据, 输出它们的相遇周期,如果相遇周期是整数则用整数表示,否则用最简分数表示。
Sample Input
2
26501/6335 18468/42
29359/11479 15725/19170
Sample Output
81570078/7
5431415

#include <stdio.h>
#define ll long long
ll gcd(ll m,ll n)//最大公因数
{ll t;if(m<n){t=m;m=n;n=t;}while(n>0){t=m;m=n;n=t%n;}return m;
}
ll lcm(ll m,ll n)//最小公倍数
{return m*n/gcd(m,n);
}
int main()
{int T;ll a,b,c,d,x,y;scanf("%d",&T);while(T--){scanf("%lld/%lld %lld/%lld",&a,&b,&c,&d);x=gcd(a,b);y=gcd(c,d);//约分a/=x;b/=x;c/=y;d/=y;if(gcd(b,d)==1){printf("%lld\n",lcm(a,c));}else{printf("%lld/%lld\n",lcm(a,c),gcd(b,d));}}return 0;
}

大佬的简便写法(看不大懂)

LL gcd(LL a, LL b) {return b ? gcd(b, a % b) : a;
}
LL lcm(LL a, LL b) {return a / gcd(a, b) * b;
}

但是 数量级相当大(千位级别的运算)的时候似乎上面的算法执行效率并不是想象中那么快速,所以有了如下的快速GCD算法,其原理是:更相减损法,当传入的参数a和b均为偶数时,我们吧a和b全部右移(>>),然后在结尾乘2(<<),如果一个奇数,一个偶数的话我们很容易想到,2肯定不会是这两个数的公约数,所以我们把偶数右移两位(>>), 如果两个数都是奇数的话,我们就令他们进行相减,然后再把a和b取最小的传入,就会出现一奇一偶的两个数即可进行下一步的运算; 算法C++实现如下:

int qGCD(int a, int b)
{if(a == 0) return b;if(b == 0) return a;if(!(a & 1) && !(b & 1)) // a % 2 == 0 && b % 2 == 0;return qGCD(a >> 1, b >> 1) << 1;else if(!(b & 1))return qGCD(a, b >> 1);else if(!(a & 1))return qGCD(a >> 1, b);elsereturn qGCD(abs(a - b), min(a, b));
}

原文:https://blog.csdn.net/m0_38081836/article/details/78053715

HDU - 相遇周期(gcd,lcm)相关推荐

  1. HDU - 相遇周期

    http://acm.hdu.edu.cn/showproblem.php?pid=1713 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: ...

  2. HDU 1713相遇周期(两个分数的lcm)

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

  3. HDU 1713 相遇周期

    2007年3月26日,在中俄两国元首的见证下,中国国家航天局局长孙来燕与俄罗斯联邦航天局局长别尔米诺夫共同签署了<中国国家航天局和俄罗斯联邦航天局关于联合探测火星-火卫一合作的协议>,确定 ...

  4. 相遇周期 HDU - 1713

    2007年3月26日,在中俄两国元首的见证下,中国国家航天局局长孙来燕与俄罗斯联邦航天局局长别尔米诺夫共同签署了<中国国家航天局和俄罗斯联邦航天局关于联合探测火星-火卫一合作的协议>,确定 ...

  5. HDU 1713 相遇周期【这也算数学吗?】

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

  6. G - 相遇周期 HDU - 1713

    添加链接描述 我们的问题是已知两颗卫星的运行周期,求它们的相遇周期. Input 输入数据的第一行为一个正整数T, 表示测试数据的组数. 然后是T组测试数据. 每组测试数据包含两组正整数,用空格隔开. ...

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

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

  8. 杭电1713相遇周期

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

  9. HDU1713 相遇周期(数学)

    hdoj1713 相遇周期(密码20178B) 相遇周期 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ( ...

最新文章

  1. VUE的本地应用-V- html
  2. [LeetCode] Count Primes
  3. Java异常的栈轨迹(Stack Trace)
  4. SQL注入学习——Bool盲注详解 sqli-labs(Less 8)
  5. [译]开始学习webpack
  6. 前端就业之vue介绍
  7. 磁盘与目录的容量(转)
  8. 阿里Java编程规约(控制语句)
  9. 拆解镍氢电池充电器,简单的电路设计令人震惊!
  10. 怎么卸载python 旧版本_Python 如何移除旧的版本特性,如何迎接新的特性?
  11. update语句修改报错问题处理
  12. 手机测试耳机音质的软件,耳机音质测试软件有哪些
  13. 雾霾、压力、不良习惯对肌肤的4大危害
  14. mybatis 不确定结果集集_集集丨与小直男的日常(三)
  15. 完全卸载3dmax(以及桌子全家产品)
  16. 告白气球,这个情人节你值得拥有!
  17. xcode结果边栏_XCode属性面板使用说明
  18. CSS 笔记——定位尺寸
  19. Jarvis oj level3
  20. 怎样看 计算机类b0809,计算机类(B0809、A0812、A0854)为什么是神?

热门文章

  1. backtrader源码解析_BackTrader 中文文档 内置指标参考
  2. STM32 LoRa无线数传模块 PC通过串口传输数据到单片机
  3. 承载了多少儿女情长--古代女性信物大观(组图)
  4. 阿里MNS、OSS 和亚马逊 SQS、S3对比
  5. 怎么把mp4格式的视频转换成gif动态图
  6. 大型社死现场,两程序员互为彼此面试官
  7. dnf跨几服务器比较稳定,2018DNF最新跨区表、dnf跨区合并表反应哪个跨区人最多...
  8. 腾讯Bugly 集成( Android SDK)
  9. Python一些可能用的到的函数系列11 本地哈希和服务器哈希比对
  10. jar包使用exe4j打成可双击运行的.exe文件和使用Inno Setup Compiler生成.exe安装包教程