把 20192019 分解成 33 个各不相同的正整数之和,并且要求每个正整数都不包含数字 22 和 44,一共有多少种不同的分解方法?
注意交换 33 个整数的顺序被视为同一种方法,例如 1000+1001+181000+1001+18 和 1001+1000+181001+1000+18 被视为同一种。
python代码如下:
import os
import sys
n = 2019
count = 0
for i in range(1,2020):
for j in range(i + 1,2020):
if 2019 - i - j > j: #2019减去两个数和的差大于j,避免过半后重复
k = 2019 - i - j
else:
break
s = str(i) + str(j) + str(k) #将三个变量变成字符串类型
if "2" not in s and "4" not in s: #剔除2,4在里面的情况
count += 1
print(count)