博客
关于我
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/

    你可能感兴趣的文章
    Pandas库常用方法、函数集合
    查看>>
    Pandas循环提速 7 万多倍是怎么实现的?
    查看>>
    pandas打乱数据的顺序
    查看>>
    pandas指定列数据归一化
    查看>>
    pandas改变一列值(通过apply)
    查看>>
    Pandas数据分析的环境准备
    查看>>
    Pandas数据可视化怎么做?用实战案例告诉你!
    查看>>
    Pandas数据处理与分析教程:从基础到实战
    查看>>
    Pandas数据结构之DataFrame常见操作
    查看>>
    pandas整合多份csv文件
    查看>>
    pandas某一列转数组list
    查看>>
    Pandas模块,我觉得掌握这些就够用了!
    查看>>
    Pandas玩转文本处理!
    查看>>
    SpringBoot 整合 Mybatis Plus 实现基本CRUD功能
    查看>>
    pandas的to_sql方法中使用if_exists=‘replace‘
    查看>>
    Springboot ppt转pdf——aspose方式
    查看>>
    pandas读取csv编码utf-8报错
    查看>>
    pandas读取parquet报错
    查看>>