最大比例

2023-11-11

题目描述

在这里插入图片描述

解析

在这里插入图片描述
接下来就是求解k和p的过程
在这道题中很难使用欧几里得算法就求解最大公约数
因此尝试使用另一种方法——更相减损术(循环相减法)
在这里插入图片描述
如果要使用欧几里得算法的话,就需要开一个非常复杂的根号,非常难算

代码

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 110;
int n;
ll a[N];
ll z[N], m[N];
ll gcd(ll a, ll b)
{
    return b ? gcd(b, a % b) : a;
}
ll gcd_sub(ll a,ll b)
{
    if(a<b) swap(a,b);
    if(b==1) return a;
    return gcd_sub(b,a/b);
}
int main()
{
    cin >> n;
    for (int i = 0; i < n; i++)
        cin >> a[i];
    sort(a, a + n);
    int k=0;
    for (int i = 1; i < n; i++)
    {
        if (a[i-1] != a[i])
        {
            ll g = gcd(a[0], a[i]);
            z[k]=a[i]/g;
            m[k]=a[0]/g;
            k++;
        }
    }
    ll up=z[0];
    for(int i=1;i<k;i++) up=gcd_sub(up,z[i]);
    ll down=m[0];
    for(int i=1;i<k;i++) down=gcd_sub(down,m[i]);
    cout<<up/gcd(up,down)<<"/"<<down/gcd(down,up)<<endl;
    return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

最大比例 的相关文章

随机推荐

  • 用java有理数类包含加减乘除_用java具体代码实现分数(即有理数)四则运算

    用java具体代码实现分数 即有理数 四则运算 1 背景 Java老师布置了一个关于有理数运算的题目 因为参考书上有基本代码 所以自己主要是对书上代码做了一点优化 使其用户交互性更加友好以及代码封装性更强 2 说明 分数也称作有理数 是我们
  • 解空间

    目录 一 解空间 二 解空间的相对性 三 解空间结构 四 解空间结构的相对性 五 对象空间 六 对象空间和解空间的关系 1 对象空间等于解空间 2 解空间是对象空间的子空间 3 解空间是对象空间的子空间构成的集合 4 解空间是对象空间 或其
  • 求二叉树的深度/求二叉树的节点数

    1 求二叉树的深度 高度 思路 递归解法 1 如果二叉树为空 则树的深度为0 递归返回条件 2 如果二叉树不为空 二叉树深度 max 左子树节点个数 右子树节点的个数 1 代码如下 二叉树节点的数据结构 class treeNode pub
  • C语言,判断二维字符数组是否存在回文字符串 例如:char a[] [10]={“asd“,“asa“,“werew“,“yuyu“};

    判断二维字符数组是否存在回文字符串 例如 char a 10 asd asa werew yuyu 提示存在回文字符串 回文字符串对称 思路 循环二维字符数组 判断每一个字符串是否是回文字符串 回文字符串使用单独函数 2 1 循环二维数组
  • C++14中返回类型推导的使用

    使用C 14中的auto返回类型 编译器将尝试自动推导 deduce 返回类型 namespace int xx 1 auto f return xx return type is int const auto f3 return xx r
  • 如何不冒昧的问妹子年龄又能清楚的知道她多大呢?Python来告诉你。

    前言 昨天 公司一个程序员过生日 一大帮子单身老爷们儿聚餐 可怜 所以大家呼朋唤友 有女朋友的带着闺蜜 朋友 好说歹说 准备一起聚聚 顺便给大家互相介绍 下 说不定 哎嘿有互相看对眼的呢 结果 人家小姐姐问你猜她多大 给程序员猜小姐姐年龄的
  • SSDA-YOLO:新的YOLOv5改进方法——用于跨域目标检测的半监督域自适应YOLO方法

    文章转载来源于自动驾驶之心 作者汽车人 域自适应目标检测 DAOD 旨在缓解跨域差异导致的传输性能下降 然而 大多数现有的DAOD方法由计算密集的两级检测器主导 这不是工业应用的首选 本文提出了一种新的基于半监督域自适应YOLO SSDA
  • Bailian3709 2进制转化为3进制【进制转换】

    题目链接 2进制转化为3进制 总时间限制 1000ms 内存限制 65536kB 描述 输入一个2进制的数 要求输出该2进制数的3进制表示 在3进制的表示中 只有0 1 2三种符号 输入 第1行是测试数据的组数n 后面跟着n行输入 每组测试
  • 彻底弄懂CommonJS和AMD/CMD!

    JS中的模块规范 CommonJS AMD CMD 如果你听过js模块化这个东西 那么你就应该听过或CommonJS或AMD甚至是CMD这些规范咯 我也听过 但之前也真的是听听而已 现在就看看吧 这些规范到底是啥东西 干嘛的 一 Commo
  • Ubuntu 搜狗输入法显示繁体,一直不显示简体

    1 问题 在ubuntu系统下 安装好sogou输入法之后 用了一段时间之后 输入拼音之后 老是出现繁体字 很烦 原因 可能误触了繁体简体开关 2 解决办法 按住shift 不放 同时 按下ctrl 和F键 即可 有些博客和评论说这种方式在
  • linux各种文件系统挂载总结

    mount语法 mount t 类型 o 挂接方式 源路径 目标路径 t 选项 iso9660 光盘或光盘镜像 msdos DOS fat16文件系统 vfat Windows 9x fat32文件系统 ntfs Windows NT nt
  • Redis核心知识点

    Redis面试精选 1 redis 简介 简单来说 redis 就是一个数据库 不过与传统https download csdn net download liyangxueit 12307486库不同的是 redis 的数据是存在内存中的
  • ++k与k++区别 和双目运算符结合

    最近在写代码时发现了这样一个错误 题目如下 链接 Hdu 1027 关键代码如下 int k 1 while next permutation s begin s end if k m 注意 问题就出在这里 for int i 0 i
  • C#编程和网络编程入门

    文章目录 一 用C 编写一个命令行 控制台程序 二 用C 编写一个简单的Form窗口程序 参考 一 用C 编写一个命令行 控制台程序 要求 用C 编写一个命令行 控制台hello world程序 实现如下功能 在屏幕上连续输出50行 hel
  • Qt的MVC模型/视图编程(一)——理论知识

    一 为什么需要MVC模型 视图 MVC模型 视图架构是用于实现对大量数据的存储 处理及其显示 如下图所示 没用MVC存储数据的是图片中的上半部分 用了MVC处理数据后的是图片的下半部分 1 MVC模型 视图的作用 a 模型 数据 与视图 显
  • 基于QT的串口调试助手制作

    目录 1 创建文件 2 串口界面制作 3 代码 4 结果 5 改进 6 百度链接 1 创建文件 创建带有ui界面的qt程序 可以点击文件 新建文件或项目就会出现上面的界面 选这Application 应用程序 创建项目 其中Qt Widge
  • 实验七 组合数据类型 Educoder

    实验七 组合数据类型 Educoder 组合数据类型是计算机编程中非常重要的概念之一 它允许我们将多个不同类型的数据组合在一起 形成一个新的数据类型 在本篇文章中 我将介绍组合数据类型的概念和用法 并通过一个示例源代码来展示它的应用 在讨论
  • “自顶向下,逐步求精”方法简要介绍

    什么是自顶向下 逐步求精 自顶向下 逐步求精 是结构化程序设计常见的思路 自顶向下 是将复杂 大的问题划分为小问题 找出问题的关键 重点所在 然后用精确的思维定性 定量地去描述问题 逐步求精 是将现实世界的问题经抽象转化为逻辑空间或求解空间
  • openwrt下crontab定时任务实现

    openwrt下crontab定时任务实现 我的需求是需要加个定时执行脚本来监控智能网关运行的进程 一旦网关进程异常关闭 就能立即把它拉起来 从而保证网关运行的可靠性 这里我们用到了crontab服务 OpenWRT系统默认已经加入了cro
  • 最大比例

    题目描述 解析 接下来就是求解k和p的过程 在这道题中很难使用欧几里得算法就求解最大公约数 因此尝试使用另一种方法 更相减损术 循环相减法 如果要使用欧几里得算法的话 就需要开一个非常复杂的根号 非常难算 代码 include