首页 > 其他分享 >P1482 Cantor表(升级版)

P1482 Cantor表(升级版)

时间:2023-06-17 10:01:52浏览次数:36  
标签:P1482 split2 String int fun Cantor parseInt Integer 升级版

Cantor表(升级版)

题目描述

现代数学的著名证明之一是 Georg Cantor 证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的:

P1482 Cantor表(升级版)_洛谷

这次与 NOIp1999 第一题不同的是:这次需输入两个分数(不一定是最简分数),算出这两个分数的积(注意需要约分至最简分数),输出积在原表的第几列第几行(若积形如 P1482 Cantor表(升级版)_java_02(即结果为整数)或者 P1482 Cantor表(升级版)_洛谷_03,则看作表内的 P1482 Cantor表(升级版)_算法_04P1482 Cantor表(升级版)_洛谷_03 结算)。

输入格式

共两行。每行输入一个分数(不一定是最简分数)。

输出格式

两个整数,表示输入的两个分数的积在表中的第几列第几行。

样例 #1

样例输入 #1

4/5
5/4

样例输出 #1

1 1

提示

数据范围

对于全部数据,两个分数的分母和分子均小于 P1482 Cantor表(升级版)_算法_06

思路解析

本题主要考虑到有以下3点:①如何把"/"去掉,拿到要进行操作的数。②对乘出来的结果约分。③根据约分后的结果,输出在表中的位置。

对于①,可以采用String输入,用split()将字符串以"/"切割成两部分(都不含"/")。代码如下:

String s1 = scanner.next();
String[] split1 = s1.split("/");
int z1 = Integer.parseInt(split1[0]);
int f1 = Integer.parseInt(split1[1]);

String s2 = scanner.next();
String[] split2 = s2.split("/");
int z2 = Integer.parseInt(split2[0]);
int f2 = Integer.parseInt(split2[1]);

对于②,找最大公约数进行约分。代码如下:

public static int fun(int z, int f) {
    int m = z < f ? z : f;
    for (int i = m; i >= 1; i--) {
        if (z % i == 0 && f % i == 0) {
            return i;
        }
    }
    return 1;
}

对于③,看表发现规律即可。

完整代码


import java.util.Scanner;

public class P1482 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String s1 = scanner.next();
        String[] split1 = s1.split("/");
        int z1 = Integer.parseInt(split1[0]);
        int f1 = Integer.parseInt(split1[1]);
        String s2 = scanner.next();
        String[] split2 = s2.split("/");
        int z2 = Integer.parseInt(split2[0]);
        int f2 = Integer.parseInt(split2[1]);
        int z = z1 * z2;
        int f = f1 * f2;
        int fun = fun(z, f);
        System.out.println(f / fun + " " + z / fun);

    }

    public static int fun(int z, int f) {
        int m = z < f ? z : f;
        for (int i = m; i >= 1; i--) {
            if (z % i == 0 && f % i == 0) {
                return i;
            }
        }
        return 1;
    }
}

标签:P1482,split2,String,int,fun,Cantor,parseInt,Integer,升级版
From: https://blog.51cto.com/u_16100430/6504559

相关文章

  • Memcache升级版:CouchBase的安装配置与使用说明
    Memcache基本上已经是开发的标配了,但是对于Memcache集群,很多线上部署仍然是很单薄的。几个存在的问题:不健壮、数据不安全、配置变更可能导致存取异常、后备数据的一致性鉴于存在以上问题,Memcache的开发团队开发了Membase,支持多台服务器集群,数据的切片和复制,有效的提高了服务稳定性......
  • 关于redis在我们数据平台升级版本时出现的问题
    redis启动原来我们是用写死的代码后来统一使用了启动脚本这就导致了redis存储的问题 我们知道,redis在默认情况(appendonlyno)下是使用快照存储,然而在写死的代码中,快照存储的位置是rootPath(我们的数据产品的根路径)大概更新了三个版本之后,bat脚本启动的位置是根路径\redis路径......
  • 工厂模式配置servlet(servlet升级版)
    1、创建一个类点击查看代码packagecom.bh.controller;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjava.io.IOException;impo......
  • 聚类算法:ISODATA算法 ——kmeans算法升级版,不知道k也可以,但是需要你自己指定其他参数
    当K值的大小不确定时,可以使用ISODATA算法。ISODATA的全称是迭代自组织数据分析法。在K均值算法中,聚类个数K的值需要预先人为地确定,并且在整个算法过程中无法更改。而当遇到高维度、海量的数据集时,人们往往很难准确地估计出K的大小。ISODATA算法就是针对这个问题进行了改进,它的思想......
  • PB反编译大师,PB反编译升级版本
    最新网址  http://www.pbdecompiler.com镜像网址 http://tx.mis2erp.com:8000/pagecn.html1).反编译powerbuilder编译后的pbd文件,支持版本5,6.5,7,8,9,10,10.5,11,11.5,12,12.5,12.6,PKB2.5,共计13个版本。2).主要用于工程文档丢失后的恢复,即工程恢复。3).在此demo中释放出全部版本作为测......
  • GitHub 上有趣、入门级的开源项目HelloGitHub 升级版的 MiniGPT-4 搞定基于图片的文
    GitHub上有趣、入门级的开源项目HelloGitHub  https://github.com/521xueweihan/HelloGitHubhttps://github.com/521xueweihan/HelloGitHub/blob/master/content/HelloGitHub61.md 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言Python......
  • 淘淘摘苹果(升级版)
    淘淘摘苹果(升级版)今天在洛谷上面做了很久的题下面的代码加注释#include<stdio.h>#include<string.h>//voidpaixu(intarr[],intbrr[],intlen){//////}intmain(){ intn,s; inta,b; scanf("%d%d",&n,&s);//搜集苹果数n,以及力气s scanf("%d%d&q......
  • 伟大思想论文:Cantor–Bernstein-Schröder 定理及其证明简介
    Cantor–Bernstein-Schröder定理及其证明简介1定理简介Cantor–Bernstein-Schröder定理,也称作Schröder–Bernstein定理、Cantor–Bernstein定理,是集合论中的重要定理。它的内容十分简单:如果集合\(A\)到集合\(B\)存在单射,且集合\(B\)到集合\(A\)存在单射,则集合......
  • ZOJ 3348 Schedule(map运用+网络流之最大流)(竞赛问题升级版)
    题目地址:ZOJ3348仍然是一道竞赛问题的网络流问题,但是这道题再用上次的竞赛建图方法就不行了,5000场比赛,明显会超时,于是需要换种建图思路了。上一道经典竞赛问题戳这里上一道的胜负转换是利用专门给比赛建一个点,通过对比赛双方的流向来控制胜负关系,这里的建图方法更加巧妙(膜拜想出这......
  • 性能分析之htop(升级版TOP)
    htop的安装下载安装包:wgethttp://hisham.hm/htop/releases/2.2.0/htop-2.2.0.tar.gz解压:tar-zxvfhtop-2.2.0.tar.gz进入htop-2.2.0目录安装:./configure&&make&&makeinstall   安装依赖gcc:yuminstall-ygcc安装依赖ncurses-devel:yuminstall-yncurse......