You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

各位数字不同且能被3整除的7位数个数的解法验证及疑问

各位数字不同且能被3整除的7位数个数的解法验证及疑问

我最近在解决HMMT 2000年2月Guts部分的第23题:各位数字不同且能被3整除的7位数有多少个? 自己推导了一种解法,但和官方答案对不上,想请大家帮忙看看问题出在哪。

我的解题思路

核心依据是:一个数能被3整除当且仅当它的各位数字之和能被3整除。所以我先枚举了所有「去掉3个数字后,剩余7个数字之和能被3整除」的数字组合,分两类统计:

类别1:去掉的数字包含0的组合

这类组合共有12种:

  • 012、015、018、024、027、036、039、045、048、057、069、078

因为去掉的数字里已经包含0,所以剩余的7个数字里没有0,所有排列都是合法的7位数。对应的总数为:
7! × 12 = 5040 × 12 = 60480

类别2:去掉的数字不包含0的组合

我统计了所有这类符合条件的组合,总数是30种:

  • 10种:123、126、129、135、138、147、156、159、168、189
  • 7种:234、237、246、249、258、267、279
  • 5种:345、348、357、369、378
  • 4种:456、459、468、489
  • 2种:567、579
  • 1种:678
  • 1种:789

这类组合剩余的7个数字里包含0,需要排除以0开头的无效情况。每类组合的合法7位数个数为总排列数减去以0开头的排列数:
7! - 6! = 5040 - 720 = 4320
30类的总数为:
4320 × 30 = 129600

最终计算结果

把两类的数量相加,得到的总数是:
60480 + 129600 = 190080

我的疑问

我默认7位数不能以0开头(毕竟常规意义上的数字不会以0开头),但官方答案给出的是224640。我尝试过假设允许0开头的情况,也算不出这个数值。想请教大家,是我的解法哪里有疏漏,还是官方答案可能存在错误?

备注:内容来源于stack exchange,提问作者RobStam

火山引擎 最新活动