博客
关于我
算法笔记_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/

    你可能感兴趣的文章
    PHP 实现N阶矩阵相乘
    查看>>
    php 实现进制转换(二进制、八进制、十六进制)互相转换
    查看>>
    PHP 实现页面跳转的三种方式及详细解析
    查看>>
    php 将XML对象转化为数组
    查看>>
    PHP 工具
    查看>>
    php 常用方法
    查看>>
    PHP 并发扣款,保证数据一致性(悲观锁和乐观锁)
    查看>>
    php 延迟静态绑定static关键字
    查看>>
    php 引用 -
    查看>>
    Redis入门
    查看>>
    PHP 截取字符串乱码的解决方案
    查看>>
    php 接口类与抽象类的实际作用
    查看>>
    PHP 插入排序 -- 折半查找
    查看>>
    PHP 支持8种基本的数据类型
    查看>>
    php 放大镜,放大镜放大图片效果
    查看>>
    php 数据库 表格数据,php数据库到excel表格-php怎么把数据库数据放到表格里
    查看>>
    PHP 数据库连接池实现
    查看>>
    php 数组 区别,PHP中数组的区别
    查看>>
    PHP 数组怎么添加一个元素
    查看>>
    PHP 文件上传
    查看>>