java判断两个数互质_AcWing 458. 比例简化-java(无需判断互质)
因为数据范围很小,这道题的基本思路就是枚举所有的A’和B’,找出最小的那个。
枚举需要满足下面两个条件
1.A’和B’互质
2.A’/B’的比例大于等于原来的比例,并且尽可能接近。
其实这里无需判断A’和B’互质。
我们使用反证法:如果存在一个A’和B’不互质,他们的公约数为c,但是他们除出来的比例是最接近原来比例的。
那么一定也存在(A’/c) / (B’/c) == A’/B’,并且我们需要求的的是满足条件的最小的两个数,所以我们根本不会取得后面互质的两个数。
也就是说我们最后不管如何都不可能取得的最接近原来比例的两个数是不互质的,因为如果这两个数不互质,那就存在比他们小的互质的数和他们的比例一样。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int A = input.nextInt();
int B = input.nextInt();
int L = input.nextInt();
double ori = (A + 0.0) / B;
int a = 0;
int b = 0;
double del = Double.MAX_VALUE;
for(int i = 1 ; i <= L ; i++){
for (int j = 1; j <=L; j++) {
double rem = a * 1.0 / b;
double cur = i * 1.0 / j;
if (cur >= ori && cur - ori < del){
del = cur - ori;
a = i;
b = j;
}
}
}
System.out.println(a +" " + b);
}
}
java判断两个数互质_AcWing 458. 比例简化-java(无需判断互质)相关推荐
- 如何判断两个数互质?三个数两两互质?……N个数两两互质?(Java代码实现)
(一).互质的概念:公约数只有1的两个数叫做互质数.根据这一定义可以对一组数是否互质进行判断.如:2和7的公约数只有1,则它们是互质数. (二).判断互质的方法大概来讲有三种 一.根据互质的概念: 如 ...
- C++: 判断两个数互质(最大公约数为1)
**定理:gcd(a,b) = gcd(b,a mod b) ** // a和b的最大公因数,a和b的大小没影响. ①0和任意自然数的最大公约数就是那个自然数. ②互质指最大公约数等于1的两个自然数. ...
- 如何判断两个数是否互质
如何判断两个数是否互质 定理:gcd(a,b) = gcd(b,a mod b) // a和b的最大公因数,a和b的大小没影响. ①0和任意自然数的最大公约数就是那个自然数.(0可以除以任何数,自然数 ...
- [ Java ] 实现两个数加减乘除的简易计算器
[ Java ] 实现两个数加减乘除的简易计算器 新手,不足之处望大佬们海涵 感谢( *ˊᵕˋ)✩︎‧₊ 以下为代码: package com.zhong.homework;import java.u ...
- 7-1 判断两个数是否互质
编写判断两个大于1的正整数m和n是否互质(即是否有公共的因子)的函数并写出相应的主函数. 判断方法是: 用2到t(t取m和n中较小的那个数)之间的数分别去除m和n,若m和n能同时被某个数除尽,则m和n ...
- python判断两个数是否互质_《算法》第一章——判断两个整数是否互质
判断两个整数互质的方法 概念:公约数只有1的两个数叫做互质数.根据互质数的概念可以对一组数是否互质进行判断.如:9和11的公约数只有1,则它们是互质数. 求商判断法:用大数除以小数,如果除得的余数与其 ...
- 判断两个数之间是否互质
互质为求其最大公约数是否为1,如果为1的话之间互质. 任意两个不相等的质数互质. 经典欧几里得算法: private static boolean get(int n, int m) {//其函数为求 ...
- 求两数是否互质c语言程序,判断两个数a,b是否为互质数的程序,用C语言编写?...
优质回答 回答者:福尔摩猪 两个数互质,就是说两个数的没有公共因子,即最大公约数是1 程序如下: #include int GCD(int x,int y)//最大公约数函数,欧几里德算法 { int ...
- 【机试】判断两个数互质
公约数只有1的两个数叫做互质数 private static boolean relativelyPrime(int x, int y) {if (x == 1 || y == 1) {// 1和其他 ...
最新文章
- 简单介绍vue获取token实现token登录的示例代码
- mysql返回页面乱码java_解决Java程序使用MySQL时返回参数为乱码的示例教程
- java ajax上传图片插件_java图片上传并预览,前台用jQuery插件AjaxFileUpload,后台用FileUtils.copyFile....
- 使用SecureCrt远程登录Linux安装配置教程
- 利用DAAB 获取存储过程返回值的方法
- c# MEF框架(四 MEF高级进阶)
- python解析不完全的html_【已解决】Scrapy的Python中如何解析部分的html字符串并格式化为html网页源码...
- Ecstore跳过后台激活验证和shopexId授权
- 杭电1710 (已知二叉树前中序 求后序)
- Java基础学习总结(4)——对象转型
- 常见排序算法的原理与实现(js)
- 【大地信】新时代GIS发展趋势与未来展望
- 笔记本电脑里计算机未响应,浅析笔记本win7系统下Word程序总是未响应的原因及解决办法【图文】...
- kpi绩效考核流程图_一种数字化KPI绩效考核方法和装置与流程
- 掌握这6个可视化图表,小白也能轻松玩转数据分析
- 二维码门禁(ssm做后台)
- 现代处理器的设计思想
- 美团校招实习生面试一面
- 单片机原理与应用设计第二章(AT89S51)
- 基于Spring+SpringMVC+Mybatis分布式敏捷开发系统架构zhen项目
热门文章
- CreateThread和_beginthread区别及使用http://blog.csdn.net/wxq1987525/article/details/6620210
- 【Python】进制、计算机中的单位、编码、数据类型、索引、字符串切片、字符串的功能方法
- 随机森林(RandomForest,RF)网格搜索法调参
- wsl2下安装lammps
- linux中各种error意思
- java自学开发编程路线图
- matplotlib 文档:Pyplot tutorial
- 加拿大计算机cs专业,加拿大CS专业全面详解
- DataView 构造
- Windwos 搭建TFTP