开发者社区> 问答> 正文

遇到一个数字问题,求解答。

请计算出 1-n(1<=n<=1000000000) 中有多少个数字中,只存在 '1','2','3' 这三个数字,且这三个数字至少都要出现 1 次。输入一个数 n。输出 1-n 中符合要求的数字的个数。

展开
收起
游客4skzfvnrxrzbi 2021-12-23 16:59:02 570 0
1 条回答
写回答
取消 提交回答
  • 寻找这种神奇数字,暴力法可以说是从数字中“尝试”某个数字,是否符合我们的标准,这个过程好比线性搜索。但换个思路想,我们也可以尝试用“构建”的方式,构建出所有符合“神奇数字”标准的数字,并挨个计数,完成这个过程。这个构建数字和搜索的过程,可以写一个递归做深度搜索实现:从 0 开始,给一个较短的数字,不断让把的其它位数字移动1位,并把多出来的个位数设为1,2,3,并在搜索的范围超过 n 时,及时停下搜索。 因此输入:232 输出:4

    2021-12-23 18:49:20
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载