有1、2、3、4、5五个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

如题所述

第1个回答  2009-06-14
这是个组合数的问题。共有C(5,3)种,即5*4*3种。简单的数学问题,编程可用穷举法求出所有满足条件的值,如二楼所述。
第2个回答  2019-08-21
偶数那么末尾数为
偶数,那么就只能从2或4中选择;
剩下一位数,从3、5以及2和4中剩余另一个选择,
c(2,1)*c(3.1)*p(2,2)
=2*3*2=12
2能组成多少个无重复数字且2、3相邻的四位数
也就2和3必须在一起,这两个数有排列方式p(2,2),然后将2、3看成整体,
还需要在剩余的3个数中选两个c(3,2)*p(2,2)*p(3,3)=36
3能成多少个无重复数字且比1325大的四位数,
比1325小的四位数有1,235,1253,
有3组成的不重复4位数有
c(4,3)*p(4,4)-2=94
第3个回答  2009-06-14
效率更高的
#include "stdio.h"

void main()
{
int i,j,k,num,t=0;
for(i=1;i<=5;i++)
{
for(j=1;j<=5;j++)
{
if(i!=j)
{
for(k=1;k<=5;k++)
{
if(i!=k&&j!=k)
{
num=i*100+j*10+k;
printf("%d ",num);
t++;
}
}
}
}
}
printf("无重复数字的三位数共有%d个\n",t);
}
第4个回答  2019-08-27
可以简单循环出来
#include <stdio.h>
int main()
{
int count = 0;
int i, j, k;
int list[5] = {1, 2, 3, 4, 5};
for(i = 0; i < 3;i++)
for(j = i + 1; j < 4 ;j++)
for(k = j + 1; k < 5;k++)
{ // i,j,k分别是三个不同的数字,一共六种组合
printf("%d%d%d\n", list[i], list[j] ,list[k] );
printf("%d%d%d\n", list[i], list[k] ,list[j] );
printf("%d%d%d\n", list[j], list[i] ,list[k] );
printf("%d%d%d\n", list[j], list[k] ,list[i] );
printf("%d%d%d\n", list[k], list[i] ,list[j] );
printf("%d%d%d\n", list[k], list[j] ,list[i] );
count += 6;
}
printf("count = %d\n", count);
}
第5个回答  2019-01-29
5×4×3×2=120
可以组成120个无重复数字的四位数
相似回答