小团想要编写一个程序,希望可以统计在M和N之间(M<N,且包含M和N)有多少个六位数ABCDEF满足以下要求: (1) ABCDEF这六个数字均不相同,即A、B、C、D、E和F表示六个不同的数字。 (2) AB+CD=EF。即将这个六位数拆成三个两位数,使得第1个和第2个两位数的和等于第3个两位数。 数据范围: 100000≤ M < N ≤ 999999 进阶:时间复杂度 O(n) ,空间复杂度 O(1)
单组输入。 输入两个六位正整数M和N(M<N),两者之间用空格隔开。
输出在M到N之间(包含M和N)满足要求的六位数的个数。
100000 110000
0
考点:穷举
数据规模 N ≤ 999999 | 限制 1 秒 / 256MB | 标准输入输出
推荐方向:穷举
本题切入点
六位数规模有限,可在 M..N 区间内逐个拆位判断:六位互不相同且 AB+CD=EF。
把候选答案空间全部列出来逐一检验,靠数据范围小来兜底。
思路框架(穷举 通法 · 非本题专属)
实现要点:多重循环是最直接的写法;枚举组合时可用递归 + 回溯,或用位掩码代表子集。
复杂度:时间 O(候选数 × 单次校验代价) | 空间 O(1)
该范式的通法易错点
对照本题
样例 1
100000 1100000解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:美团2023校招技术第7场编程题。