
#include <iostream>
using namespace std;
//////////////////////////////////////////////////////////////////////////
// 递归
//打靶问题的递归实现
//
//////////////////////////////////////////////////////////////////////////
int nScore[10]={0};
int totalCount=0;
/************************************************************************/
/*
* scores为目标靶数
* num为总共射击次数如 num=9则为 0,1,2....9
*
*/
/************************************************************************/
void ComputResult(int scores,int num)
{
if (num<0||scores>(num+1)*10) //射击完了或者即使再射一枪还是无法达到目标成绩则退出
{
return;
}
if (num=0) //射击完毕
{
nScore[num]=scores;
++totalCount; //输出运算结果,总共有几种排列方法
}
//每一次射击都有10种可能,所以是一个循环
for (int i=0;i=<10;i++)
{
nScore[num]=i;
//递归调用
ComputResult(scores-i,num-1);
}
}
void main()
{
cout<<totalCount<<endl;
getchar();