算法设计与分析题目练习一:运动员打靶(递归算法)

题目:

一个运动员打靶,靶一共有10环,连开10枪打中90环的可能性有多少种?显示所有可能组合。

#include <iostream>
using namespace std;

/************************************************************************/
/*       
	一个射击运动员打靶,靶一共有10环,连开10枪打中90环的可能性
	有多少种?请用递归算法编程实现。
*/
/************************************************************************/

int sum = 0;
int storeResult[10];

void OutPut(){

	for (int i = 9; i >= 0; --i)
	{
		cout << storeResult[i] << " ";
	}
	cout << endl;
	++sum;
}

void Comput(int score, int num){

	if (score < 0 || score>(num + 1) * 10) //次数num为0-9
		return;
	if (num == 0)
	{
		storeResult[num] = score;
		OutPut();
		return;
	}

	for (int i = 0; i <= 10; ++i)
	{
		storeResult[num] = i;
		Comput(score - i, num - 1);
	}
}

int main001(){

	Comput(90, 9);
	cout << "总数:" << sum << endl;
	system("pause");
	return 0;
}

    原文作者:递归算法
    原文地址: https://blog.csdn.net/davebobo/article/details/53818480
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞