酷代码 AI
菜单
服务商

判断超级幸运数:满足“纯4/7数位”或“4/7总个数为4或7”的整数计数

我们来分析题目,并编写一个 Python 程序来解决这个问题。 --- ### ✅ **题目核心逻辑梳理** 乐乐的**幸运数字**是:`4` 和 `7` 一个整数是**超级幸运数**,当且仅当满足以下**任一条件**: #### ✅ 条件 1(纯幸运数位): - 整个数字的**每一位**都只能是 `'4'` 或 `'7'` → 即:字符串中每个字符 ∈ `{'4', '7'}` #### ✅ 条件 2(幸运数字总个数是幸运数字): - 统计该数字中 `'4'` 和 `'7'` 出现的**总次数**(即幸运数字个数) - 这个总数本身必须是 **4 或 7**(因为幸运数字只有 4 和 7) > ⚠️ 注意:条件 2 并不要求其他数字不能出现!只要幸运数字(4/7)的总个数是 4 或 7,就满足。 > 例如:`40444444` → 有七个 `'4'`,零个 `'7'` → 共 7 个幸运数字 → 7 是幸运数字 → ✅ 满足条件 2。 --- ### 🧩 判断步骤(对每个数): 1. 将数字转为字符串(方便逐位处理) 2. 统计 `'4'` 和 `'7'` 的出现次数 → `cnt = s.count('4') + s.count('7')` 3. 检查是否满足: - 条件 1:`all(c in '47' for c in s)` - 条件 2:`cnt == 4 or cnt == 7` 4. 若任一为真 → 是超级幸运数 → 计数器 `+1` --- ### ✅ Python 实现代码: ```python n = int(input()) nums = input().split() count_super = 0 for s in nums: # 统计 4 和 7 的总个数 cnt = s.count('4') + s.count('7') # 条件1:所有字符都是 '4' 或 '7' cond1 = all(c in '47' for c in s) # 条件2:幸运数字总个数是 4 或 7 cond2 = cnt == 4 or cnt == 7 if cond1 or cond2: count_super += 1 print(count_super) ``` --- ### ✅ 验证样例: 输入: ``` 3 74 417 40444444 ``` - `"74"`: - `all in '47'` → True → ✅ 条件1 → 超级幸运 - `"417"`: - `'1'` 不在 `'47'` → 条件1 ❌ - `cnt = 2`(一个4、一个7)→ 2 ≠ 4,7 → 条件2 ❌ → ❌ - `"40444444"`: - 含 `'0'` → 条件1 ❌ - `cnt = 7`(七个 `'4'`)→ 7 是幸运数字 → ✅ 条件2 → 超级幸运 ✅ 总数 = 2 → 输出 `2` ✔️ --- ### 💡 扩展提醒(开发建议): - 输入整数范围未写全(题干中是 `1≤整数≤` 后面空了),但题目说 `n ≤ 1000`,每个数用字符串处理完全安全(Python 支持任意长度字符串)。 - 不需要转成 `int` 再处理,直接字符串更高效、避免大数溢出风险(虽然本题不会溢出)。 - `s.count()` 是 O(n);`all(...)` 也是 O(n),整体效率足够(最多 1000 个数 × 每个最多几十位)。 --- ######[AI写代码神器 | 965点数解答 | 2026-03-13 12:15:06]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]