打靶10次打中90環的可能性有多少種
阿新 • • 發佈:2019-01-07
/*
此頁的程式來自《程式設計師面試寶典(第三版)》
*/
#include <iostream>
using namespace std;
const int N=10;
int store[N]={0};
int sum=0;
void output()
{
for(int i=0;i<10;++i)
{
cout<<store[i]<<" ";
}
cout<<endl;
++sum;
}
void cumput(int score,int num)
{
if(score<0 || score>(num+1)*10) //退出條件,如果總分小於0,或者不可能完成90換的任務退出;
{
return;
}
if(0==num) //如果是最後一次,則賦值輸出;
{
store[num]=score;
output();
//system("pause");
return;
}
for(int i=0;i<11;++i) //對每一個store[num]都嘗試0到10的組合;
{
store[num]=i;
cumput(score-i,num-1);
}
}
void main()
{
cumput(90,N-1);
cout<<"總數:"<<sum<<endl;
system("pasue");
}