PAT——1062. 最简分数
一个分数一般写成两个整数相除的形式:N/M,其中M不为0。最简分数是指分子和分母没有公约数的分数表示形式。
现给定两个不相等的正分数 N1/M1 和 N2/M2,要求你按从小到大的顺序列出它们之间分母为K的最简分数。
输入格式:
输入在一行中按N/M的格式给出两个正分数,随后是一个正整数分母K,其间以空格分隔。题目保证给出的所有整数都不超过1000。
输出格式:
在一行中按N/M的格式列出两个给定分数之间分母为K的所有最简分数,按从小到大的顺序,其间以1个空格分隔。行首尾不得有多余空格。题目保证至少有1个输出。
输入样例:
7/18 13/20 12
输出样例:
5/12 7/12
package com.hone.basical; import java.util.Scanner; /**
* 原题目:https://www.patest.cn/contests/pat-b-practise/1062
* @author Xia
* 最简分数,首先得判断两个数的大小
* Math.round(double x)将x强制转化为整数(四舍五入)
* 这道题目有一个测试点没有通过。。
*/ public class basicalLevel1062EasiestFraction { public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String aString = in.next();
String bString = in.next();
int k = in.nextInt(); int n1 = Integer.parseInt(aString.split("\\/")[0]);
int m1 = Integer.parseInt(aString.split("\\/")[1]);
double a = (double)n1/(double)m1; int n2 = Integer.parseInt(bString.split("\\/")[0]);
int m2 = Integer.parseInt(bString.split("\\/")[1]);
double b = (double)n2/(double)m2; if (a>b) {
double temp = a;
a = b;
b = temp;
} double y1 = Math.ceil(a*(double)k); //向上取整
double y2 = Math.floor(b*(double)k); //向下取整
boolean isEas = true;
int flag = 1; //用flag来判断是否是第一个输出(是否加空格)
double i = y1;
while (i <= y2) {
isEas = true;
for (int j = 2; j <= i; j++) {
if (i%j==0&&k%j==0) { //判断是否为最简形式
isEas = false;
break;
}
}
if (isEas){
if (flag == 1) {
System.out.print(Math.round(i)+"/"+k);
flag = 0;
}else
System.out.print(" "+Math.round(i)+"/"+k);
}
i++;
}
System.out.println();
}
}
PAT——1062. 最简分数的更多相关文章
- PAT 1062 最简分数(20)(代码+思路)
1062 最简分数(20 分) 一个分数一般写成两个整数相除的形式:N/M,其中 M 不为0.最简分数是指分子和分母没有公约数的分数表示形式. 现给定两个不相等的正分数 N1/M1 和 N ...
- PAT 1062 最简分数
https://pintia.cn/problem-sets/994805260223102976/problems/994805268334886912 一个分数一般写成两个整数相除的形式:/,其中 ...
- PAT 1062. 最简分数(20)
一个分数一般写成两个整数相除的形式:N/M,其中M不为0.最简分数是指分子和分母没有公约数的分数表示形式. 现给定两个不相等的正分数 N1/M1 和 N2/M2,要求你按从小到大的顺序列出它们之间分母 ...
- PAT 乙级 1062 最简分数(20) C++版
1062. 最简分数(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 一个分数一般写成两个整数相除的形式: ...
- PAT(B) 1062 最简分数(Java)
题目链接:1062 最简分数 (20 point(s)) 题目描述 一个分数一般写成两个整数相除的形式:N/M,其中 M 不为0.最简分数是指分子和分母没有公约数的分数表示形式. 现给定两个不相等的正 ...
- PAT Basic 1062 最简分数 (20 分)
一个分数一般写成两个整数相除的形式:/,其中 M 不为0.最简分数是指分子和分母没有公约数的分数表示形式. 现给定两个不相等的正分数 / 和 /,要求你按从小到大的顺序列出它们之间分母为 K 的最简分 ...
- PAT 1062 Talent and Virtue[难]
1062 Talent and Virtue (25 分) About 900 years ago, a Chinese philosopher Sima Guang wrote a history ...
- 1062 最简分数 (20分)C语言
一个分数一般写成两个整数相除的形式:N/M,其中 M 不为0.最简分数是指分子和分母没有公约数的分数表示形式. 现给定两个不相等的正分数 N1/M1和 N2/M2,要求你按从小到大的顺序列出它们之间 ...
- pat 1062. Talent and Virtue (25)
难得的一次ac 题目意思直接,方法就是对virtue talent得分进行判断其归属类型,用0 1 2 3 4 表示 不合格 sage noblemen foolmen foolmen 再对序列进行排 ...
随机推荐
- [LeetCode]Find Pivot
Find Pivot: Given an array of integers nums, write a method that returns the "pivot" index ...
- Java NIO文章列表(强烈推荐 转)
IO流学习总结 一 Java IO,硬骨头也能变软 二 java IO体系的学习总结 三 Java IO面试题 NIO与AIO学习总结 一 Java NIO 概览 二 Java NIO 之 Buffe ...
- drupal读取mysql的longblob字段
unserialize($event->variables)
- 移动前端调试页面–weinre
安装 npm install -g weinre 启动 weinre --boundHost -all- 浏览器查看 http://localhost:8080 插入相关文件 index.html d ...
- 解决API中无法使用session问题
处理API无法使用session的方法,贴图: 1调用如下图 2.需要在Global.asax文件中配置一些东西 protected void Application_PostAuthorizeReq ...
- (C#) 多线程访问int, bool 等值类型变量
参考: https://stackoverflow.com/questions/154551/volatile-vs-interlocked-vs-lock/154803
- [翻译] GSProgressView
GSProgressView 本人极不推荐使用drawRect的方式来绘制下载进度条,无论机器的性能怎么高,使用drawRect用于绘制图形都是低效的. A cute little circular ...
- C#:安装Windows服务,动态指定服务名及描述(转载)
来源:http://www.cnblogs.com/Fooo/p/3476675.html Installer.cs public Installer() { InitializeComponent( ...
- 沉淀再出发:java中的CAS和ABA问题整理
沉淀再出发:java中的CAS和ABA问题整理 一.前言 在多并发程序设计之中,我们不得不面对并发.互斥.竞争.死锁.资源抢占等等问题,归根到底就是读写的问题,有了读写才有了增删改查,才有了所有的一切 ...
- python 网络编程 -- Tcp协议
Socket是网络编程的一个抽象概念.通常我们用一个Socket表示“打开了一个网络链接”,而打开一个Socket需要知道目标计算机的IP地址和端口号,再指定协议类型即可. 客户端 大多数连接都是可靠 ...