MarsCode-完美整数

本文最后更新于:2024年11月7日 下午

MarsCode-完美整数

问题描述

一个整数如果由相同的数字构成,则称为完美整数。例如:

  • 111333 是完美整数。
  • 1219101 是不完美整数。

现在,你需要计算给定区间 [x, y] 中有多少个整数是完美整数。


测试样例

样例1:

输入:x = 1 ,y = 10
输出:9

样例2:

输入:x = 2 ,y = 22
输出:10

题解

思路一-逐个判断

时间复杂度高,计算效率低下

思路二-生成完美整数序列

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
def solution(x, y):
# Edit your code here
count = 0
# 单独判断0
if x <= 0 <= y:
count += 1
# 生成诸如11,22,111等完美整数
for length in range(1, 1000):
for digit in range(1, 10):
num = int(str(digit)*length)
if x <= num <= y:
count += 1
elif num > y:
return count


return count


if __name__ == "__main__":
# Add your test cases here

print(solution(1, 10) == 9)
print(solution(2, 22) == 10)


MarsCode-完美整数
https://furthur509.github.io/2024/11/07/MarsCode-完美整数/
作者
Yang Mingxin
发布于
2024年11月7日
许可协议