文章目录

  • 1. 题目
  • 2. 解题

1. 题目

如果正整数可以被 A 或 B 整除,那么它是神奇的。

返回第 N 个神奇数字。由于答案可能非常大,返回它模 10^9 + 7 的结果。

示例 1:
输入:N = 1, A = 2, B = 3
输出:2示例 2:
输入:N = 4, A = 2, B = 3
输出:6示例 3:
输入:N = 5, A = 2, B = 4
输出:10示例 4:
输入:N = 3, A = 6, B = 4
输出:8提示:
1 <= N <= 10^9
2 <= A <= 40000
2 <= B <= 40000

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/nth-magical-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

类似题目:

  • 丑数系列
class Solution {public:int lcmab;//最小公倍数int nthMagicalNumber(int N, int A, int B) {long long lo = 2, hi = 1e15, ans, mid, mod = 1e9+7, num;lcmab = A/__gcd(A,B)*B;// 最小公倍数 = A*B/最大公约数(A,B)while(lo <= hi) {mid = lo+((hi-lo)>>1);num = ct(mid,A,B);// mid 包含多少个 神奇数字if(num >= N){ans = mid;hi = mid-1;}elselo = mid+1;}return ans%mod;}long long ct(long long n, int A, int B) {return n/A + n/B - n/lcmab;}
};

4 ms 5.9 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 878. 第 N 个神奇数字(二分查找)相关推荐

  1. 【每日一题Day35】LC878第N个神奇数字 | 二分查找 找规律 + 数学

    第N个神奇数字[LC878] 一个正整数如果能被 a 或 b 整除,那么它是神奇的. 给定三个整数 n , a , b ,返回第 n 个神奇的数字.因为答案可能很大,所以返回答案 对 109 + 7 ...

  2. 878. 第 N 个神奇数字 数学+二分

    878. 第 N 个神奇数字 一个正整数如果能被 a 或 b 整除,那么它是神奇的. 给定三个整数 n , a , b ,返回第 n 个神奇的数字.因为答案可能很大,所以返回答案 对 109 + 7  ...

  3. 878. 第 N 个神奇数字(二分查找+数学)| 1819. 序列中不同最大公约数的数目(枚举+数学)

    878. 第 N 个神奇数字 一个正整数如果能被 a 或 b 整除,那么它是神奇的. 给定三个整数 n , a , b ,返回第 n 个神奇的数字.因为答案可能很大,所以返回答案 对 109 + 7  ...

  4. LeetCode 1231. 分享巧克力(极小极大化 二分查找)

    文章目录 1. 题目 2. 解题 1. 题目 你有一大块巧克力,它由一些甜度不完全相同的小块组成.我们用数组 sweetness 来表示每一小块的甜度. 你打算和 K 名朋友一起分享这块巧克力,所以你 ...

  5. 【LeetCode】878. 第 N 个神奇数字

    题目描述 一个正整数如果能被 a 或 b 整除,那么它是神奇的. 给定三个整数 n , a , b ,返回第 n 个神奇的数字.因为答案可能很大,所以返回答案 对 109 + 7 取模 后的值. 示例 ...

  6. 力扣每日一题:878. 第 N 个神奇数字【二分法】

    一个正整数如果能被 a 或 b 整除,那么它是神奇的. 给定三个整数 n , a , b ,返回第 n 个神奇的数字.因为答案可能很大,所以返回答案 对 109 + 7 取模 后的值. 示例 1: 输 ...

  7. LeetCode 483. 最小好进制(二分查找)

    文章目录 1. 题目 2. 解题 1. 题目 对于给定的整数 n, 如果 n 的 k(k>=2)进制数的所有数位全为1,则称 k(k>=2)是 n 的一个好进制. 以字符串的形式给出 n, ...

  8. LeetCode:数组(排列组合,二分查找I,二分查找II)

    1,排列组合 38,剑指Offer:字符串的排列 题目:输入一个字符串,打印出该字符串中字符的所有排列.你可以以任意顺序返回这个字符串数组,但里面不能有重复元素. class Solution {Li ...

  9. LeetCode LCP 28. 采购方案(排序 + 二分查找)

    文章目录 1. 题目 2. 解题 1. 题目 小力将 N 个零件的报价存于数组 nums. 小力预算为 target,假定小力仅购买两个零件,要求购买零件的花费不超过预算,请问他有多少种采购方案. 注 ...

最新文章

  1. 职称计算机证是继续教育的内容吗,豆腐网教你一分钟弄懂继续教育学时认定表及上传注意事项~...
  2. javaweb实现mysql备份功能_java web 实现mysql 数据库备份、恢复
  3. Spring Boot 搭建 ELK,这才是正确看日志的方式!
  4. 程序员因中年危机从北京回老家事业单位:工资从60万爆降到6万
  5. 智源青年科学家黄高:面向高效推理的深度网络结构设计
  6. tensorflow之transpose的使用
  7. Android自定义顶部栏及侧滑菜单和fragment+viewpag滑动切换的实现
  8. 个人管理 - 程序员的四个阶段
  9. TMS320F28335的SCI通信-FIFO中断通信实验
  10. 你认为已经过时的C语言,是如何影响500万程序员的?...
  11. 云有约 | 在去O的道路上,AWS表示:经验可复制,惊喜并非只属于我们!
  12. 25 The Go image/draw package go图片/描绘包:图片/描绘包的基本原理
  13. 通过try、except和else的使用来使Python程序更加“强壮”
  14. Xshell使用教程(不断总结...)
  15. 冰点还原精灵如何安装
  16. Java基于POI来给导出的Excel动态添加水印
  17. 华为商城抢购插件_有赞商城社群接龙全面上线,社群营销玩法升级
  18. 小学生期末评语经典大全
  19. 110配线架打法图解_110配线架怎么安装
  20. Android实战——RecyclerView条目曝光埋点

热门文章

  1. Django REST framework 版本
  2. 分别写出引入CSS的3种方式, 特点, 优先级
  3. anaconda来创建python环境
  4. qt学习之键盘事件( keyPressEvent)
  5. java 最优化_java-多维度求最优解
  6. 第一季8:mpp的部署、sample的编译和测试、完整版根文件(包含mpp)制作
  7. SQL SERVER 查询表的行数
  8. Django form choices, placeholder
  9. Hadoop学习笔记—10.Shuffle过程那点事儿
  10. C#整理1——进制转换