博客
关于我
HDU 2089:不要62
阅读量:248 次
发布时间:2019-02-28

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

为了解决这个问题,我们需要计算在给定的区间 [n, m] 内,不含有不吉利数字的数字的数量。不吉利数字定义为包含数字 4 或连续出现 62 的数字。

方法思路

我们可以使用暴力枚举的方法来解决这个问题。具体步骤如下:

  • 对于每个数字 x,在区间 [n, m] 内,检查其是否包含不吉利数字 4 或 62。
  • 如果数字不包含这些不吉利数字,则计数器加一。
  • 最终输出计数器的结果。
  • 这种方法的时间复杂度是 O((m - n + 1) * len(str(m))),其中 len(str(m)) 是数字的位数。由于题目给出的 m 的最大值为 10^6,这种方法在 Python 中是可行的。

    解决代码

    import sysdef count_valid(n, m):    count = 0    for x in range(n, m + 1):        s = str(x)        if '4' in s or '62' in s:            continue        count += 1    return countn, m = map(int, sys.stdin.readline().split())while True:    line = sys.stdin.readline()    if not line:        break    n, m = map(int, line.strip().split())    if n == 0 and m == 0:        break    print(count_valid(n, m))

    代码解释

  • 读取输入:使用 sys.stdin.readline 读取输入,直到遇到两个连续的 0 时结束循环。
  • 计数函数 count_valid:遍历区间 [n, m] 内的每个数字,检查其是否包含 4 或 62。如果不包含,则计数器加一。
  • 输出结果:对于每个输入的区间,输出符合条件的数字数量。
  • 这种方法直接且简洁,能够在给定的约束条件下高效地解决问题。

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

    你可能感兴趣的文章
    POJ2794 Double Patience[离散概率 状压DP]
    查看>>
    poj2828(线段树查找序列第k小的值)
    查看>>
    POJ2891:Strange Way to Express Integers——题解
    查看>>
    poj3045 Cow Acrobats(二分最大化最小值)
    查看>>
    poj3061 Subsequence(尺取法)
    查看>>
    poj3074 DLX精确覆盖
    查看>>
    poj3252(组合数)
    查看>>
    Qt笔记——QToolBox开发简易QQ聊天界面
    查看>>
    poj3307
    查看>>
    Qt笔记——QString与隐式共享、MVC架构
    查看>>
    Qt笔记——QSemaphore处理生产者/消费者模式
    查看>>
    Qt笔记——QMutex&QWaitCondition处理生产者消费者模式
    查看>>
    Qt笔记——QLable+QPixmap图片缩放踩坑
    查看>>
    Qt笔记——foreach与forever
    查看>>
    QT程序怎么挪到Linux下,linux+Qt程序如何打包发布
    查看>>
    Qt知识:视图框架QGraphicsWidget详解
    查看>>
    SpringBoot中项目启动及定时任务缓存数据库常用数据至内存变量并转换后高频调用
    查看>>
    Qt知识: 画刷风格
    查看>>
    QT的OpenGL渲染窗QOpenGLWidget Class
    查看>>
    QT的C++程序加载动态链接库DLL(Linux下是so)的方式
    查看>>