口袋中有红、黄、蓝、白、黑五种颜色的球若干,每次从口袋中取出3个球。求取法
(用C语言)编写 展开
循环遍历即可。if (i != j && j !=k && k!=i) 。
三种不同颜色的条件#include <stdio.h>#include <stdlib.h>void main(){int i,j,k,n=0;char c[5][7]={"red","yellow","blue","white","black"};for (i=0;i<5;i++)for (j=i+1;j<5;j++)for (k=j+1;k<5;k++){ if (i != j && j !=k && k!=i) printf("%s %s %s\n",c[i],c[j],c[k]); n++;}。
printf("n=%d",n);}得:red yellow bluered yellow whitered yellow blackred blue whitered blue blackred white blackyellow blue whiteyellow blue blackyellow white blackblue white blackn=10
得到三种不同颜色的球可以选取的方法,打印出三种颜色的各种组合循环遍历即可。
5x4x3/1/2/3=10
共有10种取法。
可以用递归程序实现输出所有的取法。
我们需要给予程序如阶乘函数的定义以语义function factorial(n:Nat):Nat ≡ if (n==0)then 1 else n*factorial(n-1)。
这个阶乘程序的意义应当是在自然数上一个函数,但是由于它的递归定义,如何以复合方式理解它是不明白的。
给定偏函数 f 和 g,设"f≤g"意味着"在 f 定义的所有值之上 f 一致于 g"。 通常假定这个域的某个性质,比如链的极限的存在性(参见cpo)和一个底元素。
偏函数的偏序有一个底元素,完全未定义函数。它还有链的最小上界。各种额外性质经常是合理的和有用的: 在域理论条目中有更详尽细节。
循环遍历即可。
if(i!=j&&j!=k&&k!=i)--三种不同颜色的条件
#include<stdio.h>
#include<stdlib.h>
voidmain()
{
inti,j,k,n=0;
charc[5][7]={"red","yellow","blue","white","black"};
for(i=0;i<5;i++)
for(j=i+1;j<5;j++)
for(k=j+1;k<5;k++)
{if(i!=j&&j!=k&&k!=i)printf("%s%s%s\n",c[i],c[j],c[k]);n++;};
printf("n=%d",n);
}
得:
redyellowblue
redyellowwhite
redyellowblack
redbluewhite
redblueblack
redwhiteblack
yellowbluewhite
yellowblueblack
yellowwhiteblack
bluewhiteblack
n=10
if (i != j && j !=k && k!=i) -- 三种不同颜色的条件
#include <stdio.h>
#include <stdlib.h>
void main()
{
int i,j,k,n=0;
char c[5][7]={"red","yellow","blue","white","black"};
for (i=0;i<5;i++)
for (j=i+1;j<5;j++)
for (k=j+1;k<5;k++)
{ if (i != j && j !=k && k!=i) printf("%s %s %s\n",c[i],c[j],c[k]); n++;};
printf("n=%d",n);
}
得:
red yellow blue
red yellow white
red yellow black
red blue white
red blue black
red white black
yellow blue white
yellow blue black
yellow white black
blue white black
n=10
int main()
{
enum color {red,yellow,blue,white,black};
enum color i,j,k,pri;
int n=0,m,t;
for(i=red;i<=black;i=i+1)
{
for(j=red;j<=black;j=j+1)
{
if(i!=j)
{
for(k=red;k<=black;k=k+1)
{
if(k!=i&&k!=j)
{
n=n+1;
printf("%-4d",n);
for(m=0;m<3;m++)
{
switch(m)
{
case 0: t=i;break;
case 1: t=j;break;
case 2: t=k;break;
}
switch(t)
{
case red: printf("%-10s","red");break;
case yellow: printf("%-10s","yellow");break;
case blue: printf("%-10s","blue");break;
case white: printf("%-10s","white");break;
case black: printf("%-10s","black");break;
}
}
printf("\n");
}
}
}
}
}
system("pause");
return 0;
}
1 red yellow blue
2 red yellow white
3 red yellow black
4 red blue yellow
5 red blue white
6 red blue black
7 red white yellow
8 red white blue
9 red white black
10 red black yellow
11 red black blue
12 red black white
13 yellow red blue
14 yellow red white
15 yellow red black
16 yellow blue red
17 yellow blue white
18 yellow blue black
19 yellow white red
20 yellow white blue
21 yellow white black
22 yellow black red
23 yellow black blue
24 yellow black white
25 blue red yellow
26 blue red white
27 blue red black
28 blue yellow red
29 blue yellow white
30 blue yellow black
31 blue white red
32 blue white yellow
33 blue white black
34 blue black red
35 blue black yellow
36 blue black white
37 white red yellow
38 white red blue
39 white red black
40 white yellow red
41 white yellow blue
42 white yellow black
43 white blue red
44 white blue yellow
45 white blue black
46 white black red
47 white black yellow
48 white black blue
49 black red yellow
50 black red blue
51 black red white
52 black yellow red
53 black yellow blue
54 black yellow white
55 black blue red
56 black blue yellow
57 black blue white
58 black white red
59 black white yellow
60 black white blue
请按任意键继续. . .