每日一贴,今天的内容关键字为字符判断
<1>题问:3个A、3个B、3个C,输出足满件条:相邻的母字不能重复这样的序列
<2>代码:
#include<iostream.h>
char c[9]; //存储9个人的坐位次序
const char choice[3] = {'A','B','C'};
//判断相邻的两个字符否是雷同
bool judgeEqual(const char* c)
{
for(int i = 0;i < 8;i++)
{
if(c[i] == c[i+1])
{
return false;
}
}
return true;
}
//判断个每字符否是都是三个
bool isThree(const char* c)
{
int iA = 0,iB = 0,iC = 0;
for(int i = 0;i < 9;i++)
{
switch(c[i])
{
case 'A': iA++; break;
case 'B': iB++; break;
case 'C': iC++; break;
}
}
if(iA==3 && iB==3 && iC==3)
return true;
return false;
}
//溯回列举出9个字符有所的排列计划
void dfs(int index)
{
if(index==9)
{
if(judgeEqual(c) && isThree(c)) //如果这九个每两个相邻的字符都不雷同,就打印出这9个字符
{
for(int i = 0;i < 9;i++)
{
cout<<c[i];
}
cout<<endl;
}
return;
}
for(int i = 0;i < 3;i++)
{
c[index] = choice[i];
dfs(index+1);
//c[index] = ' '; //自己写溯回的时候老是写这句,说行进恢复,其实不谢,更易容懂得
}
}
//主函数
void main()
{
dfs(0);
}
<3>运行结果截图:
文章结束给大家分享下程序员的一些笑话语录:
小沈阳版程序员~~~ \n程序员其实可痛苦的了......需求一做一改,一个月就过去了;嚎~ \n需求再一改一调,一季度就过去了;嚎~ \n程序员最痛苦的事儿是啥,知道不?就是,程序没做完,需求又改了; \n程序员最最痛苦的事儿是啥,知道不? 就是,系统好不容易做完了,方案全改了; \n程序员最最最痛苦的事儿是啥,知道不? 就是,系统做完了,狗日的客户跑了; \n程序员最最最最最痛苦的事儿是啥,知道不? 就是,狗日的客户又回来了,程序给删没了!