小蓝正在参与—个现场问答的节目。活动中一共有30道题目,每题只有答对和答错两种情况,每答对—题得10分,答错—题分数归零。小蓝可以在任意时刻结束答题并获得目前分数对应的奖项,之后不能再答任何题目。最高奖项需要100分,所以到达100分时小蓝会直接停止答题。请注意小蓝也可能在不到100分时停止答题。已知小蓝最终实际获得了70分对应的奖项,请问小蓝所有可能的答题情况有多少种?
本题是填空题,直接简单暴力dfs,本题要跑挺久的
ans = 0
def dfs(score, n): # score表示当前得分、n表示当前答题数
global ans
if score == 70: # 当得分为70情况就加1,但是还不能退出,后面可能还有70分的情况
ans = ans + 1
if n == 30 or score == 100: # 答题数等于30或者得分为100就退出
return
dfs(score + 10, n + 1) # 答对的情况,得分加10,答题数加1
dfs(0, n + 1) # 答错的情况,得分清零,答题数加1
dfs(0, 0)
print(ans) # 8335366