A、B、C、D、E、F、G、H、I、J 共10名学生有可能参加本次计算机竞赛,也可能不参加。因为某种原因,他们是否参赛受到下列条件的约束
2017-04-07 09:06
411 查看
A、B、C、D、E、F、G、H、I、J 共10名学生有可能参加本次计算机竞赛,也可能不参加。因为某种原因,他们是否参赛受到下列条件的约束:
1. 如果A参加,B也参加;
2. 如果C不参加,D也不参加;
3. A和C中只能有一个人参加;
4. B和D中有且仅有一个人参加;
5. D、E、F、G、H 中至少有2人参加;
6. C和G或者都参加,或者都不参加;
7. C、E、G、I中至多只能2人参加
8. 如果E参加,那么F和G也都参加。
9. 如果F参加,G、H就不能参加
10. 如果I、J都不参加,H必须参加
请编程根据这些条件判断这10名同学中参赛者名单。如果有多种可能,则输出所有的可能情况。每种情况占一行。参赛同学按字母升序排列,用空格分隔。
比如:
C D G J
就是一种可能的情况。
多种情况的前后顺序不重要
技巧: 参加为1,不参加为0,不用boolean类型
3 if(a+c<=1)
4 if(b+d==1)
.....
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int a,b,c,d,e,f,g,h,i,j;
for(a=0;a<2;a++)
{
for(b=0;b<2;b++)
{
if(a==1&&b!=1)//a参加,b不参加
continue;//1
for(c=0;c<2;c++)
{
if(a+c==2)
continue;//3
for(d=0;d<2;d++)
{
if(c==0&&d==1)
continue;//2
if(b+d!=1)
continue;//4
for(e=0;e<2;e++)
{
for(f=0;f<2;f++)
{
for(g=0;g<2;g++)
{
if(c+g==1)
continue;//6
if(e==1&&f+g<2)
continue;//8
for(h=0;h<2;h++)
{
if(d+e+f+g+h<2)
continue;//5
if(f==1&&g+h>=1)
continue;//9
for(i=0;i<2;i++)
{
if(c+e+i>2)
continue;//7
for(j=0;j<2;j++)
{
if(i+j+h==0)
continue;//10
else
printf("%d %d %d %d %d %d %d %d %d %d\n",a,b,c,d,e,f,g,h,i,j );
}
}
}
}
}
}
}
}
}
}
}
1. 如果A参加,B也参加;
2. 如果C不参加,D也不参加;
3. A和C中只能有一个人参加;
4. B和D中有且仅有一个人参加;
5. D、E、F、G、H 中至少有2人参加;
6. C和G或者都参加,或者都不参加;
7. C、E、G、I中至多只能2人参加
8. 如果E参加,那么F和G也都参加。
9. 如果F参加,G、H就不能参加
10. 如果I、J都不参加,H必须参加
请编程根据这些条件判断这10名同学中参赛者名单。如果有多种可能,则输出所有的可能情况。每种情况占一行。参赛同学按字母升序排列,用空格分隔。
比如:
C D G J
就是一种可能的情况。
多种情况的前后顺序不重要
技巧: 参加为1,不参加为0,不用boolean类型
3 if(a+c<=1)
4 if(b+d==1)
.....
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int a,b,c,d,e,f,g,h,i,j;
for(a=0;a<2;a++)
{
for(b=0;b<2;b++)
{
if(a==1&&b!=1)//a参加,b不参加
continue;//1
for(c=0;c<2;c++)
{
if(a+c==2)
continue;//3
for(d=0;d<2;d++)
{
if(c==0&&d==1)
continue;//2
if(b+d!=1)
continue;//4
for(e=0;e<2;e++)
{
for(f=0;f<2;f++)
{
for(g=0;g<2;g++)
{
if(c+g==1)
continue;//6
if(e==1&&f+g<2)
continue;//8
for(h=0;h<2;h++)
{
if(d+e+f+g+h<2)
continue;//5
if(f==1&&g+h>=1)
continue;//9
for(i=0;i<2;i++)
{
if(c+e+i>2)
continue;//7
for(j=0;j<2;j++)
{
if(i+j+h==0)
continue;//10
else
printf("%d %d %d %d %d %d %d %d %d %d\n",a,b,c,d,e,f,g,h,i,j );
}
}
}
}
}
}
}
}
}
}
}
相关文章推荐
- 10.A、B、C、D、E、F、G、H、I、J 共10名学生有可能参加本次计算机竞赛,也可能不参加。因为某种原因,他们是否参赛受到下列条件的约束:
- 逻辑判断:A、B、C、D、E、F、G、H、I、J 共10名学生有可能参加本次计算机竞赛,也可能不参加。因为某种原因,他们是否参赛受到下列条件的约束 1. 如果A参加,B也参加;
- 参赛约束 A、B、C、D、E、F、G、H、I、J 共10名学生有可能参加本次计算机竞赛,也可能不参加。
- A、B、C、D、E五名学生有可能参加计算机竞赛
- 是否存在2009个实数满足下列条件
- JavaScript判断远程图片是否存在,加载完成:onerror 属性- & jQuery实现(如果因为网络或图片的原因发生异常,则显示该图片)~
- 计算机出现“蓝屏”的可能原因
- JavaScript判断远程图片是否存在,加载完成:onerror 属性- & jQuery实现(如果因为网络或图片的原因发生异常,则显示该图片)~
- 有一些常识,可能你以后参加一些智力竞赛时会用的上。。
- T61P 安装Win7 出现 Windows update 当前无法检查更新,因为未运行服务。您可能需要重新启动计算机
- VB调用VC++的DLL问题:原因可能是托管的PInvoke 签名与非托管的目标签名不匹配。请检查PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。
- 小明和小强都是张老师的学生,张老师的生日是M月N日,2人都知道张老师的生日 是下列10组中的一天,张老师把M值告诉了小明,把N值告诉了小强,张老师问他们知道他的生日是那一天吗?
- 学生阶段是否应该参加社团工作?
- ORA-02290:违反检查约束条件(sys_c0011321)什么原因
- 由于该计算机受到限制本次操作已被取消请与你的系统管理员联系
- windows update当前无法检查更新,因为服务未运行,您可能需要重新启动计算机,OK
- 如果学生的考试不及格,实在不能怪他们,原因如下:
- 计算机名"无法访问。您可能没有权限使用网络资源。请与这台服务器的管理员联系以查明您是否有访问权限。拒绝访问。"
- 谁参加了计算机竞赛
- 如果因为某种原因再也用不了google,那你用什么搜索?