33,311
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
using namespace std;
int main()
{
int i,j,k,l,count=0;
for(k=1;k<=5;k++)
for(j=1;j<=5;j++)
for (i=1;i<=5;i++)
if(i!=j&&i!=k&&j!=k)
{
cout <<i<<" "<<j<<" "<<k<<endl;
count++;
}
cout <<"count="<<count<<endl;
}
enum Color{red, black, blue, yellow, white};
Color cArray[]={/*所有的球*/};
int i, j, k, num=0, match=0;
for (i=0;i<sizeof(cArray)/sizeof(cArray[0]); i++)
{
for (j=0; j<i; j++)
{
for (k=0; k<j; k++)
{
num++;//一种排列组合
if ((cArray[i]!=cArray[j]) && (cArray[j]!=cArray[k])&&
(cArray[k]!=cArray[i]))
{
//颜色各不相同
match++;
}
}
}
}
printf("total=%d, match=%d\n", num, match);
//用递归
#include <iostream>
using namespace std;
unsigned int f(int n)
{
return (n == 0 ||n == 1)? 1 : n * f(n -1);
}
int main(void)
{
int x=f(5)/f(3);
cout<<x<<endl;
return 0;
}
//3个循环穷举就行了,枚举本质上是个unsign int,可以做循环变量
enum Color{red, black, blue, yellow, white};
Color col;
for ( Color i = red, i <= white; i++)// 取得第一个球
{
for ( Color i = red, i <= white; i++)// 取得第二个球
{
for ( Color i = red, i <= white; i++)// 取得第三个求
{
// 在这里处理每种情况,判断当前情况是否和已经算过的情况相同
}
}
}