博客
关于我
算法笔记_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学习笔记一:谁动了你的mail(),PHP?
    查看>>
    PHP安全实战
    查看>>
    php安装扩展
    查看>>
    php实战第二十二天
    查看>>
    rabbitmq重启
    查看>>
    php实现上传(多个)文件函数封装
    查看>>
    php实现下载文件方法
    查看>>
    php实现单链表
    查看>>
    php实现图片背景换色功能
    查看>>
    php实现多个一维数组对应合并成二维数组
    查看>>
    php实现多关键字查找方法
    查看>>
    PHP实现微信公众号H5支付
    查看>>
    PHP实现微信公众号网页授权
    查看>>
    PHP实现微信小程序推送消息至公众号
    查看>>
    rabbitmq逻辑与开发
    查看>>
    php实现根据身份证获取年龄
    查看>>
    PHP实现的MongoDB数据增删改查
    查看>>
    PHP实现的SSO单点登录系统,拿走就用吧
    查看>>
    php实现短信验证功能
    查看>>
    RabbitMQ连接报错(1)—— None of the specified endpoints were reachable
    查看>>