心动网络一道编程题:
一个射击运动员打靶,靶一共有10环,连开10枪打中90环的情况有多少种?需要考虑10枪的先后关系,比如9环10环同10环9环是不同的。
递归起!
int sum;
int store[10];
void Output() //打印
{
for(int i=9;i>=0;i--)
{
cout<<store[i]<<" ";
}
cout<<endl;
++sum;
}
void Comput(int score, int num)
{
if(score<0 || score>(num+1)*10) //退出递归
return ;
if(num==0) //打到最后一次
{
store[num]=score;
Output();
return;
}
for(int i=0;i<=10;i++) //没有出现上述情况,递归
{
store[num]=i;
Comput(score-i,num-1);
}
}
int main()
{
Comput(90,9);
cout<<sum<<endl;
return 0;
}