第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);
}