int a[5]
int len1,len2,len3
void input(int len1,int len2,int len3)
{
printf("%d %d %d\n",a[len1],a[len2],a[len3])
}
void solve(int len1,int len2,int len3)
{
input(len1,len2,len3)
if(len1==2) return
if(len3<4) len3++
else if(len2<3)
{
len2++
len3=len2+1
}
else if(len1<2)
{
len1++
len2=len1+1
len3=len2+1
}
solve(len1,len2,len3)
}
void main()
{
int i
for(i=0i<5i++) a[i]=i+1
printf("所构成组合是:\n")
solve(0,1,2)
return
}
在选取红球时,另红球一编号比红球二编号小,即可得到所有的组合,具体语句为j=i+1,代码及截图如下,因为结果数据比较庞大,所以只截取开头和结尾
#include<iostream>
#include<iomanip>
using namespace std
void main()
{
int count=0
cout<<"组合种类 红球一 红球二 蓝球"<<endl
for(int i=1 i<=8 i++)
for(int j=i+1 j<=8 j++)
for(int k=1 k<=10 k++)
{
cout<<left<<setfill(' ')<<setw(10)<<++count
cout<<i<<" "<<j<<" "<<k<<endl
}
cout<<endl<<"共有"<<count<<"种组合"<<endl<<endl
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)