| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 821 人关注过本帖
标题:[求助]大家来帮帮小弟呀
只看楼主 加入收藏
风影—人生
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-4-6
收藏
 问题点数:0 回复次数:10 
[求助]大家来帮帮小弟呀
 某贞察小组要派人去执行任务,请问满足经下条件应该怎么派人?
A,B中至少去一人
A,D不能一起去
A,E,F三人中要派二人去
B,C要不就一起去,要不就不去
C,D中去一个,
D不去E也不去


小弟刚学,帮帮忙哦
小弟在这不慎感谢

[此贴子已经被作者于2006-4-7 10:04:30编辑过]

搜索更多相关主题的帖子: 任务 
2006-04-07 10:03
风影—人生
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-4-6
收藏
得分:0 
我就是不知道到底该从何下手,想了N长时间,还是没有想出个好办法来
请各位 GGJJDDMM 帮帮忙
2006-04-07 10:45
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
收藏
得分:0 

嘻嘻``逻辑题嘛``几个FOR的循环``把题目中的条件都并起来`


我的原则很简单:不做不喜欢的事!
2006-04-07 11:16
风影—人生
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-4-6
收藏
得分:0 

呵呵
大侠们说是小事
可对小弟来说,却是大事呀!!

2006-04-07 11:28
季节的开始
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-4-7
收藏
得分:0 

#include <stdio.h>
struct E
{ int num;
char ch;
} ;
main()
{ int i,j;
struct E a[6]={{1,'A'},{1,'B'},{1,'C'},{1,'D'},{1,'E'},{1,'F'}};

if (a[0].num==0&&a[1].num==0) { a[1].num=1; a[0].num=1;}

if (a[0].num==1) a[3].num=0;
else a[0].num=0;

if(a[1].num==1) a[2].num=1;
else a[2].num=0;

if (a[3].num==0) a[4].num=0;

if(a[0].num==1&&a[4].num==1) a[5].num=0 ;
else if(a[0].num==1&&a[5].num==1) a[4].num=0 ;
else if(a[5].num==1&&a[4].num==1) a[0].num=0 ;

for (j=0;j<6;j++)
if (a[j].num==1)
printf("%c ",a[j].ch);
printf("\n");

return 0;

}




好象很笨..有没有好好方法.

[此贴子已经被作者于2006-4-7 16:02:14编辑过]


This is me~!
2006-04-07 13:22
菜鸟1号
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2006-4-7
收藏
得分:0 
可以用离散数学解决,离散数学也是计算机相关的一门学科,我先去上课,回来再解

虽然我是一只菜鸟...但是菜鸟也有飞上蓝天的那一天...
2006-04-07 13:48
走刀口→超
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:5018
专家分:0
注 册:2006-3-14
收藏
得分:0 
晕。这个题目感觉能写出来么。直接写出答案我到是能想出来哦!
ABCF呵呵!

人在江湖【走】,怎能不挨【刀】;为了能活【口】,唯有把己【超】!come on...
2006-04-07 15:45
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
呵呵,5楼的方法好像烦了些.这是我的解法.我觉得要好些.
#include<stdio.h>
main()
{
int a,b,c,d,e,f;
for(a=0;a<2;a++) /*用1表示这个人要去,0表示他不去*/
for(b=0;b<2;b++)
for(c=0;c<2;c++)
for(d=0;d<2;d++)
for(e=0;e<2;e++)
for(f=0;f<2;f++)
{
if(a+b==0) /*表示A,B至少去一人*/
continue;
if(a+d==2) /*表示A,D不能一起去*/
continue;
if((a+e+f)!=2) /*表示A,E,F三人中要去两人*/
continue;
if(b+c==1) /*表示B,C作出一样的决定*/
continue;
if(c+d!=1) /*表示C,D中只去一个*/
continue;
if(d+e==1) /*表示D,E作出一样的决定*/
continue;
printf("A:%2d,B:%2d,C:%2d,D:%2d,E:%2d,F:%2d\n",a,b,c,d,e,f);
}
getch();
}

对不礼貌的女生收钱......
2006-04-07 18:53
abingchem
Rank: 6Rank: 6
等 级:贵宾
威 望:24
帖 子:716
专家分:0
注 册:2004-12-30
收藏
得分:0 
恩,不错

此人已消失
2006-04-07 20:00
季节的开始
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-4-7
收藏
得分:0 
以下是引用soft_wind在2006-4-7 18:53:00的发言:
呵呵,5楼的方法好像烦了些.这是我的解法.我觉得要好些.
#include<stdio.h>
main()
{
int a,b,c,d,e,f;
for(a=0;a<2;a++) /*用1表示这个人要去,0表示他不去*/
for(b=0;b<2;b++)
for(c=0;c<2;c++)
for(d=0;d<2;d++)
for(e=0;e<2;e++)
for(f=0;f<2;f++)
{
if(a+b==0) /*表示A,B至少去一人*/
continue;
if(a+d==2) /*表示A,D不能一起去*/
continue;
if((a+e+f)!=2) /*表示A,E,F三人中要去两人*/
continue;
if(b+c==1) /*表示B,C作出一样的决定*/
continue;
if(c+d!=1) /*表示C,D中只去一个*/
continue;
if(d+e==1) /*表示D,E作出一样的决定*/
continue;
printf("A:%2d,B:%2d,C:%2d,D:%2d,E:%2d,F:%2d\n",a,b,c,d,e,f);
}
getch();
}

.我总感觉你的要比我麻烦..循环太多次了..浪费多少编译时间..晕

我想问还有没有更简洁的办法.咱们俩用的都是笨法子~


This is me~!
2006-04-07 21:16
快速回复:[求助]大家来帮帮小弟呀
数据加载中...
 
   



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

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