统计数字 2 出现的次数

问题描述:

请统计某个给定范围[L, R]的所有整数中,数字 2 出现的次数。

示例:

比如给定范围[2, 22],数字 2 在数 2 中出现了 1 次,在数 12 中出现 1 次,在数 20 中出现 1 次,在数 21 中出现 1 次,在数 22 中出现 2 次,所以数字 2 在该范围内一共出现了 6 次。

输入描述:

输入共 1 行,为两个正整数 L 和 R,之间用一个空格隔开。

输出描述:

输出共 1 行,表示数字 2 出现的次数。

思路:

对于给定范围[L, R],可以依次遍历范围内的每一个整数,统计每个整数中数字 2 出现的次数,然后将次数累加即可。

具体实现步骤如下:

  1. 读取输入的两个整数 L 和 R。
  2. 定义一个变量 count,初始化为 0,用于统计数字 2 的出现次数。
  3. 从 L 开始,依次遍历到 R,对于每个整数 num,执行以下操作:
    • 将 num 转为字符串 str。
    • 遍历字符串 str 的每个字符,判断是否为字符 '2',如果是,则 count 加 1。
  4. 输出 count 的值,即为数字 2 出现的次数。

时间复杂度分析:

遍历范围内每个整数的时间复杂度为 O(R-L+1),遍历每个整数的字符串表示的时间复杂度为 O(log10(R-L+1))。所以总的时间复杂度为 O((R-L+1) * log10(R-L+1))。

空间复杂度分析:

除了输入和输出的空间外,只需要常数级别的额外空间,所以空间复杂度为 O(1)。

统计数字 2 出现的次数 - C/C++ 算法题

原文地址: https://www.cveoy.top/t/topic/qiKM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录