游乐园抽奖问题 题目描述:在游乐园纪念品商店消费到一定数额可抽奖。店员在 0 ~ 9 范围内随机选择两个数字 a 和 b(a <= b),所有不小于 a 且不大于 b 的数字作为“彩蛋数字”。抽奖者在奖券上写一个 10 位的正整数,若 10 个数位上“彩蛋数字”不少于 6 个就算中奖。店员收集了 n 张奖券,编号为 1 ~ n,要求编写程序依次输出所有中奖奖券的编号,最后输出中奖奖券的张数。 输入描述: 第 1 行:三个用空格隔开的正整数 n、a、b,表示奖券张数、店员选择的两个数字。 第 2 ~ n + 1 行:编号为 1 ~ n 的奖券上的数,每行一个数,保证都是 10 位的正整数,无前导 0。 输出描述: 若干行,从小到大输出中奖奖券的编号,每行一个编号。最后一行输出中奖奖券的张数。 样例1 输入: 4 0 2 1234567890 9876543210 2222222222 1010109823 输出: 3 4 2 提示: 样例说明: 彩蛋数字是 0 ~ 2,4 张奖券包含的彩蛋数字个数依次为 3、3、10、7,编号为 3、4 的奖券中奖,中奖奖券张数为 2。 数据范围: 1 <= n <= 100000,0 <= a <= b <= 9。
正确答案:参考程序(Python):n,a,b=map(int,input().split());ok=0;for i in range(1,n+1):s=input();cnt=sum(1 for ch in s if a<=int(ch)<=b);if cnt>=6:print(i);ok+=1;print(ok)。样例→3 4 2。核心:彩蛋数字计数中奖。
试卷来源:2025全国青少年信息素养大赛C++算法创意实践挑战赛(初中组_复赛)真题