题目:
一个运动员打靶,靶一共有10环,连开10枪打中90环的可能性有多少种?显示所有可能组合。
#include
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;
}