火柴棒等式
日期:2023.9.12
题目地址:火柴棒等式
题目分析
看到 n < = 24 n<=24 n<=24, 可以知道数据量量不大,可以直接用枚举,把1-2000(优化后1500),表示出来就行了。
代码题解
n = int(input())
dic = {'0':6, '1':2, '2':5, '3':5, '4':4, '5':5, '6':6, '7':3, '8':7, '9':6}
ans = 0
# 获取0-1500对应的火柴棒数
for i in range(10, 1501):
temp = str(i)
sums = 0
for t in temp:
sums += dic[t]
dic[temp] = sums
# 先记录A!=B
for i in range(750):
for j in range(i+1, 751):
# n-4是代表去掉加号等号后的火柴数目
if dic[str(i)] + dic[str(j)] + dic[str(i+j)] == n-4:
ans += 2
# 记录A=B
for i in range(751):
if dic[str(i)] + dic[str(i)] + dic[str(2*i)] == n-4:
ans += 1
print(ans)