c++ 排列组合

2024-11-21 16:11:42
推荐回答(3个)
回答(1):

先不说程序,10个数选5个不重复就有10*9*8*7*6=30240种情况,第6个数又有5种选择,总共有151200组.你的1260哪来的

第一题
# include
void main()
{
int s=0;
int a,b,c,d,e;
for(a=0;a<6;a++)
for(b=a+1;b<7;b++)
for(c=b+1;c<8;c++)
for(d=c+1;d<9;d++)
for(e=d+1;e<10;e++)
{
s+=5;
printf("%d %d %d %d %d %d\n",a,b,c,d,e,a);
printf("%d %d %d %d %d %d\n",a,b,c,d,e,b);
printf("%d %d %d %d %d %d\n",a,b,c,d,e,c);
printf("%d %d %d %d %d %d\n",a,b,c,d,e,d);
printf("%d %d %d %d %d %d\n",a,b,c,d,e,e);
}
printf("%d",s);
}

第二题
# include
void main()
{
int s=0;
int a,b,c,d;
for(a=0;a<7;a++)
for(b=a+1;b<8;b++)
for(c=b+1;c<9;c++)
for(d=c+1;d<10;d++)
{
s+=6;
printf("%d %d %d %d %d %d\n",a,b,c,d,a,b);
printf("%d %d %d %d %d %d\n",a,b,c,d,a,c);
printf("%d %d %d %d %d %d\n",a,b,c,d,a,d);
printf("%d %d %d %d %d %d\n",a,b,c,d,b,c);
printf("%d %d %d %d %d %d\n",a,b,c,d,b,d);
printf("%d %d %d %d %d %d\n",a,b,c,d,c,d);
}
printf("%d",s);
}

回答(2):

这个要枚举的话试试按重复的那个数分类
有2个0时: 剩下9个数取4个
...

第二题也同样道理

没空code ,good luck

回答(3):

榜眼就是榜眼,效率太高了。我这题目刚刷出来你答案都出了……
- -!