#include<iostream>
#include<math.h>
using namespace std;
#define N 6 //骰子个数
#define s 8 //总点数
static int a[N]={0};//存储可打印序列
static int num=0; //计数符合条件序列
void touzi(int sum,int n)
{
for(int i=1;i<7;i++)
{
a[n-1] = i; //存储骰子点数
if(sum==i && n==1) //最后一个骰子,且剩余点数在1-6之间
{
for(int j=0;j<N;j++)
cout<<a[j]; //打印
num++; //计数加一
cout<<endl;
return;
}
if(sum-i>0 && n>0) //还有骰子,并且剩余点数>i,就迭代
touzi(sum-i,n-1);
else
return;//不符合条件,返回!
}
}
int main()
{
touzi(s,N);
cout<<"组数:"<<num<<endl;
cout<<"一共:"<<"6^"<<N<<endl;
cout<<"概率P="<<num/(pow(6,N))<<endl;
return 0;
}
n个骰子的点数
最新推荐文章于 2021-02-13 09:20:26 发布