| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 628 人关注过本帖
标题:新手急需求解(要不然我的脑细胞会被杀完的)
只看楼主 加入收藏
zxbstar
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-10-21
结帖率:0
收藏
已结贴  问题点数:20 回复次数:6 
新手急需求解(要不然我的脑细胞会被杀完的)
某参观团按一下条件限制从ABCDE五个地方种选若干参观点:
(1)如果去A,就必须去B;
(2)D和E只能去其中一个地方;
(3)B和C只能去其中一个地方;
(4)C和D要么都去,要么都不去;
(5)如果去E地,则必须去A和D。
问参观团能去哪几个让地方
搜索更多相关主题的帖子: 脑细胞 
2012-10-21 20:23
cjbs10086
Rank: 2
等 级:论坛游民
帖 子:32
专家分:45
注 册:2012-10-13
收藏
得分:5 
c d
2012-10-21 20:32
cyhdahua
Rank: 7Rank: 7Rank: 7
来 自:山东
等 级:黑侠
威 望:2
帖 子:221
专家分:643
注 册:2012-6-15
收藏
得分:5 
学习了

WE GO
2012-10-21 23:12
cqm9266
Rank: 3Rank: 3
来 自:福建
等 级:论坛游侠
帖 子:174
专家分:186
注 册:2011-10-28
收藏
得分:5 
e不能去 ab  cd

没病的人说有病的人有病,有病的人说没病的人有病。到底是谁有病?
2012-10-21 23:35
菜鸟一支
Rank: 6Rank: 6
来 自:何美杭
等 级:侠之大者
威 望:1
帖 子:121
专家分:456
注 册:2012-10-10
收藏
得分:5 
用1表示去0表示不去;用0~2^5中间的所有数的二进制形式以举穷的方式进行判断那五个条件
程序代码如下:
#include<stdio.h>
#include<math.h>
void main()
{    int i,m,n,p,q,a[5]={0};
    for(i=0;i<pow(2,5);i++)
    {    n=i;
         p=0;
    do{
         m=n%2;
         n/=2;
         a[p]=m;
         p++;
        }while(n!=0);
    if(a[0]-a[1]!=1&&a[3]*a[4]==0&&a[1]*a[2]==0&&a[2]-a[3]==0)
    if(a[4]==1&&a[0]*a[3]==0)
        continue;
    else if(a[4]==0)
{{    for(q=0;q<5;q++)
     if(a[q]==1)
     printf("%c",65+q);
}
    printf("\n");

}}
}
(程序运行后第一行的空白表示哪都不去,也满足条件哈)

小弟何美杭,所发表的都仅代表个人观点,欢迎批评指正。
2012-10-21 23:53
zxbstar
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-10-21
收藏
得分:0 
我学习C语言编程就三来个周,因此以后要多蒙各位前辈的帮忙。
2012-10-22 07:47
cyhdahua
Rank: 7Rank: 7Rank: 7
来 自:山东
等 级:黑侠
威 望:2
帖 子:221
专家分:643
注 册:2012-6-15
收藏
得分:0 
我再献丑一下哈
程序代码:
/*
设要去的地方为1 ,不去的地方时0;
则:
    1.if(a==1)b=1;
    2.如果d是1,那么e是0;如果e是1,那么d是0;要么都不去:
    即:(d^e==1)||(d|e==0);
    3.同理
        (b^c==1)||(b|c==0);
    4.同理
        c^d==0;
    5.if(e==1) {a=1;d=1;}
*/

#include<stdio.h>
int main(void){
    int a,b,c,d,e;
    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++){       
                        int bT=b,aT=a,dT=d;//因为要用到b,a,d,又不能改变它在循环中的值,就设置几个临时变量
                        if(e==1){
                            aT=1;
                            dT=1;
                        }
                        if(a==1||aT==1)
                            bT=1;
                       
                        if(((dT^e)==1||(dT|e)==0)&&((bT^c)==1||(bT|c)==0)&&(c^d)==0)
                            printf("A is%d\nB is%d\nC is %d\nD is %d\nE is %d\n\n",aT,bT,c,dT,e);
                    }
    scanf("%d",&a);
}
还不完美 不过大约就这样

WE GO
2012-10-22 09:20
快速回复:新手急需求解(要不然我的脑细胞会被杀完的)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016532 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved