| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1966 人关注过本帖
标题:老师出了一道题,只能写到这样,总是有错误,求大神指导
只看楼主 加入收藏
csy1120
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-9-17
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
老师出了一道题,只能写到这样,总是有错误,求大神指导
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名同学中参赛者名单。如果有多种可能,则输出所有的可能情况。



public class Test{

    public static void main (String[] args){
            int[] constvalue = {1,2,4,8,16,32,64,128,256,512};
            for(int i=0;i<1024;i++){
                if(((i&constvalue['a'-'a'])==constvalue['a'-'a'])
                    &&((i&constvalue['b'-'a'])==0)){
                    continue;}
                if(!((i&constvalue['c'-'a'])==constvalue['c'-'a'])
                    &&((i&constvalue['d'-'a'])==constvalue['d'-'a'])){
                    continue;}
                if(((i&constvalue['a'-'a'])==constvalue['a'-'a'])
                    &&((i&constvalue['c'-'a'])==constvalue['c'-'a'])){
                    continue;}
                if((((i&constvalue['b'-'a'])==constvalue['b'-'a'])&&((i&constvalue['d'-'a'])==constvalue['d'-'a']))
                    ||(!(i&constvalue['b'-'a']==constvalue['b'-'a'])&&!((i&constvalue['d'-'a'])==constvalue['d'-'a']))){
                    continue;}
                if((((i&constvalue['d'-'a'])==constvalue['d'-'a'])+((i&constvalue['e'-'a'])==constvalue['e'-'a'])+
                    ((i&constvalue['f'-'a'])==constvalue['f'-'a'])+((i&constvalue['g'-'a'])==constvalue['g'-'a'])+
                    ((i&constvalue['h'-'a'])==constvalue['h'-'a']))<2){
                    continue;}
                if((!((i&constvalue['c'-'a'])==constvalue['c'-'a'])&&((i&constvalue['g'-'a'])==constvalue['g'-'a']))
                    ||(((i&constvalue['c'-'a'])==constvalue['c'-'a'])&&(!((i&constvalue['g'-'a'])==constvalue['g'-'a'])))){
                    continue;}
                if((((i&constvalue['c'-'a'])==constvalue['c'-'a'])+((i&constvalue['e'-'a'])==constvalue['e'-'a'])+
                    ((i&constvalue['g'-'a'])==constvalue['g'-'a'])+((i&constvalue['i'-'a'])==constvalue['i'-'a']))>2){
                    continue;}
                if((((i&constvalue['e'-'a'])==constvalue['e'-'a'])&&(!((i&constvalue['f'-'a'])==constvalue['f'-'a'])))
                    ||(((i&constvalue['e'-'a'])==constvalue['e'-'a'])&&(!((i&constvalue['g'-'a'])==constvalue['g'-'a'])))){
                    continue;}
                if((((i&constvalue['f'-'a'])==constvalue['f'-'a'])&&((i&constvalue['g'-'a'])==constvalue['g'-'a']))
                    ||(((i&constvalue['f'-'a'])==constvalue['f'-'a'])&&((i&constvalue['h'-'a'])==constvalue['h'-'a']))){
                    continue;}
                if(((!((i&constvalue['i'-'a'])==constvalue['i'-'a']))&&(!((i&constvalue['j'-'a'])==constvalue['j'-'a']))
                    &&(!((i&constvalue['h'-'a'])==constvalue['h'-'a'])))){
                    continue;}
                if((i&constvalue['a'-'a'])==constvalue['a'-'a']){
                    System.out.print("A");}
                if((i&constvalue['b'-'a'])==constvalue['b'-'a']){
                    System.out.print("B");}
                if((i&constvalue['c'-'a'])==constvalue['c'-'a']){
                    System.out.print("C");}
                if((i&constvalue['d'-'a'])==constvalue['d'-'a']){
                    System.out.print("D");}
                if((i&constvalue['e'-'a'])==constvalue['e'-'a']){
                    System.out.print("E");}
                if((i&constvalue['f'-'a'])==constvalue['f'-'a']){
                    System.out.print("F");}
                if((i&constvalue['g'-'a'])==constvalue['g'-'a']){
                    System.out.print("G");
                if((i&constvalue['h'-'a'])==constvalue['h'-'a']){
                    System.out.print("H");}
                if((i&constvalue['i'-'a'])==constvalue['i'-'a']){
                    System.out.print("I");}
                if((i&constvalue['j'-'a'])==constvalue['j'-'a']){
                    System.out.print("J");}
                System.out.println();
               
                }
                    
        }
    }
}
搜索更多相关主题的帖子: 计算机 
2016-09-17 16:57
kaosaier
Rank: 5Rank: 5
等 级:职业侠客
威 望:7
帖 子:124
专家分:303
注 册:2016-7-23
收藏
得分:5 
回复 楼主 csy1120
你的老师是个傻逼。

minecraft,我的最爱!
2016-09-17 20:17
hhwz
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:87
帖 子:687
专家分:4502
注 册:2011-5-22
收藏
得分:5 
int[] constvalue = {1,2,4,8,16,32,64,128,256,512};
这个是什么意思
2016-09-18 16:36
kaosaier
Rank: 5Rank: 5
等 级:职业侠客
威 望:7
帖 子:124
专家分:303
注 册:2016-7-23
收藏
得分:0 
回复 3楼 hhwz
定义一个数字并初始化。

minecraft,我的最爱!
2016-09-20 02:01
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:5 
答案有五组。。
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int a,b,c,d,e,f,g,h,i,j;

int f1() {//1. 如果A参加,B也参加;
    if(a==1)if(b==1)return 1;
        else return 0;
    return 1;
}
int f2() { //2. 如果C不参加,D也不参加;
    if(c==0)if(d==0)return 1;
        else return 0;
    return 1;
}
int f3() {// 3. A和C中只能有一个人参加;
    if(a+c==1)return 1;
    else return 0;
}
int f4() {//4. B和D中有且仅有一个人参加;
    if(b+d==1)return 1;
    else return 0;
}
int f5() {//5. D、E、F、G、H 中至少有2人参加;
    if(d+e+f+g+h>=2)return 1;
    else return 0;
}
int f6() {// 6. C和G或者都参加,或者都不参加;
    if(c==g)return 1;
    else return 0;
}
int f7() {//7. C、E、G、I中至多只能2人参加
    if(c+e+g+i<=2)return 1;
    else return 0;
}
int f8() {//8. 如果E参加,那么F和G也都参加。
    if(e==1)if(f==1&&g==1)return 1;
        else return 0;
    return 1;
}
int f9() {//9. 如果F参加,G、H就不能参加
    if(f==1)if(g==0&&h==0)return 1;
        else return 0;
    return 1;
}
int f10() {//10. 如果I、J都不参加,H必须参加
    if(i==0&&j==0)if(h==1)return 1;
        else return 0;
    return 1;
}

int main() {
    for(a=0; a<2; a++) {
        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++) {
                            for(g=0; g<2; g++) {
                                for(h=0; h<2; h++) {
                                    for(i=0; i<2; i++) {
                                        for(j=0; j<2; j++) {
    if(f1()&&f2()&&f3()&&f4()&&f5()&&f6()&&f7()&&f8()&&f9()&&f10()){
        printf("a=%d b=%d c=%d d=%d e=%d f=%d g=%d h=%d i=%d j=%d\n",a,b,c,d,e,f,g,h,i,j);
    }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    return 0;
}






φ(゜▽゜*)♪
2016-09-20 11:04
csy1120
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-9-17
收藏
得分:0 
回复 3楼 hhwz
分别代表A,B,C........等   
2016-09-20 22:11
天马星空ss
Rank: 2
等 级:论坛游民
帖 子:8
专家分:26
注 册:2016-9-28
收藏
得分:0 
分别是a,b,c
2016-09-28 10:58
ltp217
Rank: 2
等 级:论坛游民
帖 子:8
专家分:32
注 册:2013-6-4
收藏
得分:0 
这老师会玩
2016-10-04 17:00
快速回复:老师出了一道题,只能写到这样,总是有错误,求大神指导
数据加载中...
 
   



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

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