书的页码编号是按1 2 3 4 5一直这样下去的,数字5恰好出现了16次,请问这本书最多可以有多少页?
包含5的页码: 5 15 25 35 45 50 51 52 53 54 55 56 57 58 59 65
需要注意页码55,出现了两次5。因此到59页就满足数字5出现了16次。且59页是书本最少总页数。最多总页数要往17次算出页数65,65页刚好第一次满足出现17次数字5,所在64页就是数字5出现16次的书本最多总页数。
def page_num_count(specify_number: int, set_times: int) -> tuple[int, int, list[int]]:
page_num = 1
num_count = 0 # 记录5出现的总次数
list_specify_number = [] # 包含指定数字的页码,组成列表。
while True:
count = str(page_num).count(str(specify_number)) # 统计5在当前页码中出现的次数
if count > 0:
num_count += count # 当前页码有5,将次数累加进总次数中
list_specify_number.append(page_num)
if num_count == set_times:
break
page_num += 1
return page_num, num_count,list_specify_number
page_num, num_count, list_specify_number = page_num_count(5, 16)
print(f"5出现的总次数:{num_count}") # 5出现的总次数:16
print(f"最少:{page_num}页。") # 最少:59页。
print(f"包含5的页码:", *list_specify_number)

文章描述了一个函数`page_num_count`,用于确定给定数字(如5)在页码中出现16次或17次的书籍的最大页数。函数通过循环遍历页码并统计数字5的出现次数,得出最少(16次)和最多(17次)的页数范围。
最低0.47元/天 解锁文章


被折叠的 条评论
为什么被折叠?



