蓝桥杯python练习——数字串个数

目录

数字串个数 

问题描述

解析

代码


数字串个数 

问题描述

小蓝想要构造出一个长度为 1000010000 的数字字符串,有以下要求:

  1. 小蓝不喜欢数字 00,所以数字字符串中不可以出现 00;

  2. 小蓝喜欢数字 33 和 77,所以数字字符串中必须要有 33 和 77 这两个数字。

请问满足题意的数字字符串有多少个?这个数字会很大,你只需要输出其对 109+7109+7 取余后的结果。

解析

不出现0,即每一位可能是1到9

必须要有3和7

逆向思维一下,可以用总的可能种类数9^10000减去不含有3或7的种类数

使用容斥原理,不含3或7的总种类数即为不含3的8^10000加上不含7的8^10000减去不含3也不含7的7^10000种

可以使用python内置的pow函数

内置的pow函数语法如下:

pow(x, y, z)

这里,x是底数,y是指数。如果提供了可选参数z,则会计算xy次幂后对z取模,即计算pow(x, y) % z的结果。

代码

import os
import sys

# 请在此输入您的代码
#不出现0,即每一位可能是1到9
#必须要有3和7
#逆向思维一下,可以用总的可能种类数9^10000减去不含有3或7的种类数
#使用容斥原理,不含3或7的总种类数即为不含3的8^10000加上不含7的8^10000减去不含3也不含7的7^10000种
mod = 10**9 + 7
print((pow(9,10000,mod) - 2 * pow(8,10000,mod) + pow(7,10000,mod)) % mod)

### 蓝桥杯 Python 考试大纲概述 蓝桥杯 Python 组的比赛内容涵盖了编程基础、算法设计以及实际应用能力等多个方面。以下是基于已有资料整理的内容说明: #### 一、输入输出处理 比赛中的题目通常会涉及标准输入和输出的操作,考生需熟练掌握以下方法: - **单个数据读取**:通过 `input()` 函数获取字符串类型的输入,并可进一步转换为所需的数据类型,例如整型或浮点型[^3]。 - **批量数据读取**:对于一行中包含多个数值的情况,可以通过 `map` 和列表推导式实现快速解析并存储至数组中。 ```python # 示例代码:读取两个整数 x, y = map(int, input().split()) print(x + y) # 示例代码:将一行的整数存入列表 int_list = [int(i) for i in input().split()] print(sum(int_list)) ``` --- #### 二、基本数据结构与操作 熟悉 Python 的内置数据结构及其常用操作是参赛的基础技能之一。具体包括但不限于以下几个方面: - **列表 (List)**:支持增删改查等常规功能;能够灵活运用切片技术完成子序列提取[^2]。 ```python # 创建列表 my_list = [1, 2, 3] # 添加元素 my_list.append(4) # 删除指定位置的元素 del my_list[0] # 切片示例 sub_list = my_list[1:3] ``` - **字典 (Dictionary)** 及集合 (Set): 掌握键值对管理方式以及无序不重复特性下的成员测试效率优化技巧。 --- #### 三、字符编码转换 比赛中可能遇到需要进行 ASCII 编码互换的任务场景,则应牢记如下语句形式来解决此类需求: - 将字母映射成对应的 ASCII 数值——利用 `ord()` 方法; - 把数字还原回相应的字符表现形式则调用 `chr()` 实现即可。 ```python ascii_value = ord('A') character = chr(65) print(f"ASCII Value of 'A': {ascii_value}, Character from Code 65: '{character}'") ``` --- #### 四、算术运算符扩展理解 除了普通的加减乘除外,在某些特定条件下还需要注意特殊符号的行为模式解释清楚其作用原理: - 整除 (`//`) 运算返回的是向下取整后的结果而不是简单去掉小数部分那么简单。 ```python result = 7 // 3 print(result) # 输出 2 ``` --- #### 五、字符串遍历机制探讨 当面对较长文本串时如何高效逐位访问每一个组成单元成为了一个值得研究的话题. 下面给出了一段简洁明了的例子展示这一过程: ```python text = "hello world" for char in text: print(char) ``` 以上即是对蓝桥杯 Python B 组相关内容的一个概括总结版本。需要注意的是虽然这里列举了一些重点考察方向但并不意味着完全覆盖所有潜在知识点因此建议选手们平时多做练习积累实战经验从而提高解题速度与准确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柏箱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值