蓝桥杯真题:数字串个数
一、题意
小蓝想要构造出一个长度为10000 的数字字符串,有以下要求:
-
小蓝不喜欢数字0 ,所以数字字符串中不可以出现0 ;
-
小蓝喜欢数字3 和7 ,所以数字字符串中必须要有3 和7 这两个数字。
请问满足题意的数字字符串有多少个?这个数字会很大,你只需要输出其对109 + 7 取余后的结果。
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
二、代码
1.代码的实现
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)
#pow(a,b,c)的意思是a的b次方再对c取模
总结
pow(a,b,c)的意思是a的b次方再对c取模,解题时候注意逆向思维考虑!!