杭电oj_1713——相遇周期(java实现)
question:相遇周期
思路:
首先将两个分数化为最简形式(也就是分子分母同时除以最大公约数)
然后题意是要求两个分数的最小公倍数
借助以下两个公式,就可以求出结果
1.最小公倍数*最大公约数 = a*b
2.两个分数的最小公倍数:分子为两个分子的最小公倍数,分母为两个分母的最大公约数(前提是分数是最简形式)
注:最后结果要判断一下,如果分子可以被分母整除,则只要输出整除的结果,否则输出拼接字符串
source code:
package hduoj; import java.util.Scanner; /**
* 最小公倍数*最大公约数 = a*b
* 两个分数的最小公倍数:分子为两个分子的最小公倍数,分母为两个分母的最大公约数(前提是分数是最简形式
*/
public class hdoj_1713 {
static long gcd(long a,long b){
if(b==0) return a;
return(gcd(b,a%b));
} public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int count = Integer.parseInt(sc.next());
while(count--!=0){
String the_first = sc.next();
String the_last = sc.next();
long the_first_numberator = Integer.parseInt(the_first.split("/")[0]);
long the_first_denominator = Integer.parseInt(the_first.split("/")[1]);
long gcd_1 = gcd(the_first_numberator,the_first_denominator);
the_first_numberator/=gcd_1;
the_first_denominator/=gcd_1; long the_last_numberator = Integer.parseInt(the_last.split("/")[0]);
long the_last_denominator = Integer.parseInt(the_last.split("/")[1]);
long gcd_2 = gcd(the_last_numberator,the_last_denominator);
the_last_numberator/=gcd_2;
the_last_denominator/=gcd_2; long gcd_3 = gcd(the_first_numberator,the_last_numberator); long the_result_numberator = the_first_numberator/gcd_3*the_last_numberator;
long the_result_denominator = gcd(the_first_denominator,the_last_denominator);
if(the_first_numberator%the_result_denominator!=0)
System.out.println(the_result_numberator+"/"+the_result_denominator);
else
System.out.println(the_result_numberator/the_result_denominator);
}
}
}
思路是从其他博主哪里学习来的,贴上链接:
https://www.cnblogs.com/William-xh/p/7203232.html?utm_source=itdadao&utm_medium=referral
代码已经ac
希望对大家有所帮助
以上
杭电oj_1713——相遇周期(java实现)的更多相关文章
- 杭电oj2093题,Java版
杭电2093题,Java版 虽然不难但很麻烦. import java.util.ArrayList; import java.util.Collections; import java.util.L ...
- 杭电oj————2057(java)
question:A+ B again 思路:额,没啥思路/捂脸,用java的long包里的方法,很简单,只是有几次WA,有几点要注意一下 注意:如果数字有加号要删除掉,这里用到了正则表达式“\\+” ...
- 杭电acm2059-龟兔赛跑 java
一看题就知道是动态规划,不过这要看下如何设置变化数组了 先分析这道题:兔子到达终点的时间时固定的,因此只需要考虑乌龟了,乌龟骑电车和骑自行车的时间,然后计算,因为中间有N个充电站,可以看做N个点(到起 ...
- 杭电2091空心三角形Java(AC)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2091 把三角形写入二维数组里,然后输出出来 注意事项: 1.三角形后面没有空格(每一层的后面) 2.三角形 ...
- 杭电1257 dp(java)
最少拦截系统 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的 ...
- 杭电ACM 1713 相遇周期
相遇周期 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- 杭电oj 4004---The Frog Games java解法
import java.util.Arrays; import java.util.Scanner; //杭电oj 4004 //解题思路:利用二分法查找,即先选取跳跃距离的区间,从最大到最小, // ...
- HDU 1713 最小公倍数与最大公约数的问题 相遇周期
欢迎参加——BestCoder周年纪念赛(高质量题目+多重奖励) 相遇周期 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/ ...
- 杭电ACM分类
杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze ...
随机推荐
- 发ajax响应json格式数据
1.maven依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="h ...
- 安装PHP到CentOS(YUM)
运行环境 系统版本:CentOS Linux release 7.3.1611 软件版本:PHP-7.2 硬件要求:无 安装过程 1.配置YUM源 [root@localhost ~]# rpm -i ...
- JAVA面向对象 - 抽象类、接口
抽象类 用abstract关键字来修饰一个类时,这个类就叫抽象类,用abstract关键字来修饰一个方式时,这个方法就是抽象方法.当一个类继承的父类是抽象类的话,需要我们把抽象类中的所有抽象方法全部实 ...
- C# WPF从RIOT API获取数据(RIOT代表作品《英雄联盟》)
微信公众号:Dotnet9,网站:Dotnet9,问题或建议:请网站留言, 如果对您有所帮助:欢迎赞赏. C# WPF从RIOT API获取数据(RIOT代表作品<英雄联盟>) 阅读导航 ...
- python里奇怪的赋值
学了几天python了,python简洁,灵活,应用广泛,我已有所感. 1.奇怪的赋值 a,b,c=1,2,3 就一个这样的句子,就把1,2,3分别赋给了变量a,b,c,这也太奇怪了吧,太随意了吧.在 ...
- Mysql基础04-查询
关联查询 1.内连接:实现A∩B select 字段列表 from A表 inner join B表 on 关联条件 where 等其他子句; 2.左外连接 #实现查询结果是A select 字段列表 ...
- webpack4搭建vue多页面环境
总结一下webpack4配置vue开发环境,本文不具体介绍webpack的基本概念和用途,如有不了解的请参见https://www.webpackjs.com/concepts/官网 一.webpac ...
- centos7 下 安装GeoIP2,在nginx中根据ip地址对应的国家转发请求
最近有个需求是根据用户的地理位置,访问不同的服务器,比如国外用户访问国外的服务器,国内的用户访问国内的服务器,实现的思路主要两种: 智能dns,这个需要在阿里云中注册为企业版才有提供 nginx中使用 ...
- 题解 AT3717 【[ABC081A] Placing Marbles】
题目传送门. 分析 我们可以把字符串中所有数加起来输出,那么到底怎么把一个字符变成一个数字呢.我们只需要减去字符\(0\)就可以了. 详细步骤 定义字符串\(s\)并将其输入. string s; c ...
- 在mac下初次使用pygame踩坑纪实(卡死)
初次使用pygame实现绘图功能就踩坑 直接上代码 import pygame pygame.init() # 创建游戏的窗口 480 * 700screen = pygame.display.set ...