c++ 排列组合

来源:百度知道 编辑:UC知道 时间:2024/06/22 23:55:15
从0至9共10个数。选6个数。要求5个不重复,第6个数为前5个数之1。共有1260组。即选出的6个数里,有一个数字是重复。分别是那些组合?
从0至9共10个数。选6个数。要求4个不重复,第5、6个数为前4个数之1。共有1260组。即选出的6个数里,有二个数字是重复。分别是那些组合?
谢谢。
无顺序
=C(5,10)*C(1,5)=((10*9*8*7*6)/(5*4*3*2*1))*5=1260
123455与554321是一样。算一组。
第一题:分别对a,b,c,d,e从0到9循环,当a,b,c,d,e各不相等时,输出
a,b,c,d,e,a
a,b,c,d,e,b
a,b,c,d,e,c
a,b,c,d,e,d
a,b,c,d,e,e
本人没学过写程序。麻烦大侠帮我写好。。。

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

第一题
# include<stdio.h>
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<stdio.h>
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(