小蓝正在参与一个现场问答的节目。
活动中一共有 30 道题目,每题只有答对答错两种情况,答对一题得 10 分,答错一题分数归零。
小蓝可以在任意时刻结束答题并获得目前分数对应的奖项,之后不能再答任何题目。
最高奖项需要 100 分,所以到达 100 分时小蓝会直接停止答题。
已知小蓝最终实际获得了 70 分对应的奖项,请问小蓝所有可能的答题情况有多少种?
本题的结果为一个整数,在提交答案时只输出这个整数,输出多余的内容将无法得分
#include<iostream>
using namespace std;
int ans;
void dfs(int pos,int sum)
{
if(sum==70)
ans++;
if(sum==100)
return;
if(pos==30)
return;
dfs(pos+1,sum+10);
dfs(pos+1,0);
}
int main()
{
dfs(0,0);//多少题,分数总和多少
cout<<ans;
return 0;
}
不能写成 if(sum>=70) return;//这个条件会在当前分数达到或超过70分时就直接返回,而不管是否已经尝试过所有可能的答题情况。