解题思路:
记0为不去,1为去,6个for就是全部情况列举,2*2*2*2*2*2,
1)A和B两人中至少去一人;
2)A和D不能一起去;
3)A、E和F三人中要派两人去;
4)B和C都去或都不去;
5)C和D两人中去一个;
分别对应:
a+b>=1 && a+d!=2 && a+e+f==2 && b==c && c+d==1
6)若D不去,则E也不去===if(d==0)e=0;if(d==0)e=1;
本来应该只要if(d==0)e=0这个的,但是会发现这样,for会进入死循环,因为 for(e=0; e<=1; e++)
所以要加if(d==0)e=1,这样就能跳出循环
注意事项:
参考代码:
#include<stdio.h>
int main()
{
int a,b,c,d,e,f;
for(a=0; a<=1; a++)
for(b=0; b<=1; b++)
for(c=0; c<=1; c++)
for(d=0; d<=1; d++)
for(e=0; e<=1; e++)
for(f=0; f<=1; f++)
{
if(d==0)e=0;
if(a+b>=1 && a+d!=2 && a+e+f==2 && b==c && c+d==1)
{
if(a==1) printf("A,");
if(b==1) printf("B,");
if(c==1) printf("C,");
if(d==1) printf("D,");
if(e==1) printf("E,");
if(f==1) printf("F,");
}
if(d==0)e=1;
}
}
0.0分
17 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复