递归

代码




#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();

原文地址:https://www.cnblogs.com/xianqingzh/p/1678350.html