问题四十四: 新郎A,B,C与新娘X,Y,Z, A不与X结婚,X不与C结婚,C不与Z结婚,求出结婚情况
问题四十五:要求在ABCDEF六人中尽可能多的挑选若干人,其中
1、A,B至少一人
2、A,D不能同选
3、A,E,F要选两人
4、B,C都选或都不选
5、C,D选一个
6、若D不选则E也不选
问题四十六:A说B在说谎,B说C说谎,C说A,B在说谎 ,求ABC的谎话情况
/*
问题四十四: 新郎A,B,C与新娘X,Y,Z, A不与X结婚,X不与C结婚,C不与Z结婚,求出结婚情况
分析: 使用穷举法,相同数字表示婚配
问题四十五:要求在ABCDEF六人中尽可能多的挑选若干人,其中
1、A,B至少一人
2、A,D不能同选
3、A,E,F要选两人
4、B,C都选或都不选
5、C,D选一个
6、若D不选则E也不选
分析:以数字形式表示
a+b>=1
a+d!=2
a+e+f==2
b+c==2||b+c==0
a+d==1
d+e==0||d==1
问题四十六:A说B在说谎,B说C说谎,C说A,B在说谎 ,求ABC的谎话情况
分析:数字表示,1实话,0为谎话
A+B == 1
B+C == 1
(C==1&&(A+B==0))||(C==0&&(A+B)==2)
问题四十七: 一个旅馆住着六个不同国籍的人ABCDEF,分别来自美,德,英,法,俄,意,现在已知
1、A和美国人是医生
2、E和俄罗斯人是教师
3、C和德国人是技师
4、B、F当过兵,德国人没参军
5、法国人比A年龄大,意大利人比C年龄大
6、B同美国人下周去旅行,C同法国人下周去度假
分析:使用二维数组逐步判断符合题意的结果
*/
#include<iostream>
using namespace std;
void hun_pei(){
int a,b,c;
int x=0,y=1,z=2;
for(a=0;a<3;a++){
for(b=0;b<3;b++){
if(a==b)continue;
for(c=0;c<3;c++){
if(c==a||c==b)continue;
if(a!=x&&c!=x&&c!=z){
cout<<"a"<<" and "<<(char)('x'+a)<<endl;
cout<<"b"<<" and "<<(char)('x'+b)<<endl;
cout<<"c"<<" and "<<(char)('x'+c)<<endl;
}
}
}
}
}
void xuan_ren(){
int a=0,b=0,c=0,d=0,e=0,f=0;
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(a+b>=1 && a+d!=2 &&
a+e+f==2 && (b+c==2||b+c==0) &&
c+d==1 && (d+e==0||d==1)){
cout<<"a:"<<a<<" b:"<<b<<" c:"<<c
<<" d:"<<d<<" e:"<<e<<" f:"<<f<<endl;
}
}
}
}
}
}
}
//cout<<"no"<<endl;
}
void huang_hua(){
int count=0;
int a,b,c;
for(a=0;a<=1;a++){
for(b=0;b<=1;b++){
for(c=0;c<=1;c++){
if((a+b == 1)&&
(b+c == 1)&&
((c==1&&(a+b==0))||(c==0&&(a+b)!=0)))
//count++;
cout<<"A:"<<a<<" B:"<<b<<" C:"<<c<<endl;
}
}
}
}
int main(){
//题目四十四
hun_pei();
//题目四十五
xuan_ren();
//题目四十六
huang_hua();
return 0;
}
这其中有不合适或者不正确的地方欢迎指正,我的QQ号码:2867221444(乔金明),谢谢,也可以相互交流下,备注信息随意,只要能看得出是开发者或者学习者即可。