博客
关于我
算法笔记_192:历届试题 买不到的数目(Java)
阅读量:443 次
发布时间:2019-03-06

本文共 633 字,大约阅读时间需要 2 分钟。

为了解决这个问题,我们需要找到给定两种糖果包装的颗数下,最大的不能组合出的糖果数量。这个问题可以通过数学理论来解决,特别是当两种包装的数量互质时,我们可以使用公式来计算最大的不能组合出的数目。

方法思路

  • 问题分析:我们需要找到最大的不能用两种包装组合出的糖果数量。这个问题类似于邮票问题或青蛙问题,可以通过数学方法来解决。
  • 数学理论:当两种包装的数量互质时,最大的不能组合出的数目可以通过公式 ab - a - b 计算,其中 ab 分别是两种包装的数量。
  • 互质检查:使用欧几里得算法来检查两种包装的数量是否互质。如果它们互质,则使用上述公式;否则,无法找到有限的最大数目。
  • 解决代码

    import mathn, m = map(int, input().split())gcd = math.gcd(n, m)if gcd == 1:    print(n * m - n - m)else:    print(-1)

    代码解释

  • 读取输入:使用 input() 读取两个正整数 nm,分别表示两种糖果包装的数量。
  • 计算最大公约数:使用 math.gcd(n, m) 计算 nm 的最大公约数。
  • 判断互质:如果最大公约数为1,说明两种包装数量互质,使用公式 n * m - n - m 计算最大的不能组合出的数目。
  • 处理非互质情况:如果两种包装数量不互质,输出 -1,表示没有有限的最大数目。
  • 这个方法高效且简洁,能够在给定约束条件下快速解决问题。

    转载地址:http://owtyz.baihongyu.com/

    你可能感兴趣的文章
    NVelocity标签设置缓存的解决方案
    查看>>
    Nvidia Cudatoolkit 与 Conda Cudatoolkit
    查看>>
    NVIDIA GPU 的状态信息输出,由 `nvidia-smi` 命令生成
    查看>>
    nvidia 各种卡
    查看>>
    Nvidia 系列显卡大解析 B100、A40、A100、A800、H100、H800、V100 该如何选择,各自的配置详细与架构详细介绍,分别运用于哪些项目场景
    查看>>
    NVIDIA-cuda-cudnn下载地址
    查看>>
    nvidia-htop 使用教程
    查看>>
    nvidia-smi 参数详解
    查看>>
    Nvidia驱动失效,采用官方的方法重装更快
    查看>>
    nvmw安装node-v4.0.0之后版本的临时解决办法
    查看>>
    nvm切换node版本
    查看>>
    nvm安装 出现 Error retrieving “http://xxxx/SHASUMS256.txt“: HTTP Status 404 解决方法
    查看>>
    nvm安装以后,node -v npm 等命令提示不是内部或外部命令 node多版本控制管理 node多版本随意切换
    查看>>
    NXLog采集windows日志配置conf文件
    查看>>
    ny540 奇怪的排序 简单题
    查看>>
    NYOJ -216 A problem is easy
    查看>>
    NYOJ 1066 CO-PRIME(数论)
    查看>>
    NYOJ 737:石子合并(一)(区间dp)
    查看>>
    nyoj 91 阶乘之和(贪心)
    查看>>
    nyoj------203三国志
    查看>>