1. 程式人生 > >打靶10次打中90環的可能性有多少種

打靶10次打中90環的可能性有多少種

/*

此頁的程式來自《程式設計師面試寶典(第三版)》

*/

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

}