求解满足递归数位和约束的正整数n
求解满足递归数位和约束的正整数n
咱们来解决这个问题:给定正整数$n$,用$S(n)$表示$n$的十进制数位之和,找出所有满足等式$n + S(n) + S(S(n)) = 1000$的正整数$n$。
第一步:缩小$n$的范围
首先,数位和$S(n)$有个关键性质:对于$k$位数$n$,$S(n) \leq 9k$。咱们先判断$n$的位数:
- 如果$n$是四位数,最小的四位数是1000,代入等式得$1000 + 1 + 1 = 1002 > 1000$,更大的四位数只会让左边更大,所以$n$不可能是四位数。
- 如果$n$是三位数,最大的数位和$S(n)$是999的数位和27,而$S(S(n))$最大是27的数位和9,所以$S(n)+S(S(n)) \leq 27+9=36$。由此可得$n \geq 1000 - 36 = 964$。
所以$n$的范围锁定在964到999之间的三位数。
第二步:逐个范围验证
接下来咱们把$n$写成$900+10a+b$($a$是十位数字,$b$是个位数字),代入等式展开:
$$
(900+10a+b) + (9+a+b) + S(9+a+b) = 1000
$$
化简后得到:
$$
11a + 2b + S(9+a+b) = 91
$$
咱们分情况讨论十位数字$a$的可能值:
- 当$a=9$时:$11*9=99$,$99 + 2b + S(18+b) \geq 99 > 91$,显然不可能满足等式,无解。
- 当$a=8$时:$11*8=88$,需要$2b + S(17+b)=3$。$2b$是非负偶数,$S(17+b)$最小是8(当$b=0$时,17的数位和是8),$8>3$,无解。
- 当$a=7$时:$11*7=77$,需要$2b + S(16+b)=14$。遍历$b=0$到9:
- $b=0$:$0+7=7≠14$;$b=1$:$2+8=10≠14$;$b=2$:$4+9=13≠14$;$b≥3$时,$2b≥6$,$S(16+b)≥10$(比如$b=3$时19的数位和是10),$6+10=16>14$,无解。
- 当$a=6$时:$11*6=66$,需要$2b + S(15+b)=25$。$b≥4$(因为$n≥964$),$2b≤18$($b≤9$),$S(15+b)$最大是6(当$b=9$时24的数位和是6),$18+6=24<25$,无解。
结论
遍历所有可能的$n$范围后,没有找到满足$n + S(n) + S(S(n)) = 1000$的正整数$n$。
备注:内容来源于stack exchange,提问作者Jullius Silva




