| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7570 人关注过本帖, 2 人收藏
标题:JAVA逻辑编程题,真心做不出来,麻烦大家了
只看楼主 加入收藏
gd6570
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2013-7-22
结帖率:25%
收藏(2)
已结贴  问题点数:5 回复次数:7 
JAVA逻辑编程题,真心做不出来,麻烦大家了
A、B、C、D、E五位同学各自从不同的途径打听到获得通讯赛第一名的同学的情况:
A:姓李,女同学,年龄13,广东人
B:姓张,男同学,年龄11,湖南人
C:姓陈,女同学,年龄13,广东人
D:姓黄,男同学,年龄11,广西人
E:姓张,男同学,年龄12,广东人
实际上,获得第一名的同学姓什么,性别,年龄,哪里人这四项情况在表中已有,但五位同学所打听到的情况,每人仅有一项是正确的。
请根据此推断获得第一名的同学的情况。
搜索更多相关主题的帖子: 广西人 广东人 湖南人 JAVA 
2014-03-29 21:40
gd6570
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2013-7-22
收藏
得分:0 
回复 楼主 gd6570
请大家上代码,谢谢!!!
2014-03-29 21:40
日知己所无
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:38
帖 子:427
专家分:2071
注 册:2014-3-22
收藏
得分:5 
程序代码:
import java.util.*;

public class FirstStudent {

    private static String[] infoArray = {
        "姓李,女同学,年龄13,广东人", // A
        "姓张,男同学,年龄11,湖南人", // B
        "姓陈,女同学,年龄13,广东人", // C
        "姓黄,男同学,年龄11,广西人", // D
        "姓张,男同学,年龄12,广东人", // E
    };

    // InfoSet
    private static Set<String> nameSet = new TreeSet<>();
    private static Set<String> sex_Set = new TreeSet<>();
    private static Set<String> age_Set = new TreeSet<>();
    private static Set<String> homeSet = new TreeSet<>();

    public static void main(String[] args) {
        for (String infoString : infoArray) {
            initInfoSet(infoString);
        }

        for (String name : nameSet) {
            for (String sex : sex_Set) {
                for (String age : age_Set) {
                    for (String home : homeSet) {
                        if(meetCondition(name, sex, age, home, infoArray[0], 0)
                        && meetCondition(name, sex, age, home, infoArray[1], 0)
                        && meetCondition(name, sex, age, home, infoArray[2], 0)
                        && meetCondition(name, sex, age, home, infoArray[3], 0)
                        && meetCondition(name, sex, age, home, infoArray[4], 0)) {
                            System.out.println(
                                    "第一名的同学:"
                                    + name + ","
                                    + sex  + ","
                                    + age  + ","
                                    + home);
                        }
                    }
                }
            }
        }
    }

    private static void initInfoSet(String infoString) {
        nameSet.add(infoString.split(",")[0]);
        sex_Set.add(infoString.split(",")[1]);
        age_Set.add(infoString.split(",")[2]);
        homeSet.add(infoString.split(",")[3]);
    }

    private static boolean meetCondition(
            String nameString,
            String sex_String,
            String age_String,
            String homeString,
            String infoString,
            int meetTimes) {
        meetTimes = nameString.equals(infoString.split(",")[0]) ? meetTimes + 1 : meetTimes;
        meetTimes = sex_String.equals(infoString.split(",")[1]) ? meetTimes + 1 : meetTimes;
        meetTimes = age_String.equals(infoString.split(",")[2]) ? meetTimes + 1 : meetTimes;
        meetTimes = homeString.equals(infoString.split(",")[3]) ? meetTimes + 1 : meetTimes;
        return (meetTimes == 1); // 每人仅有一项是正确的
    }
}


输出:
第一名的同学:姓黄,女同学,年龄12,湖南人
2014-03-30 14:56
日知己所无
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:38
帖 子:427
专家分:2071
注 册:2014-3-22
收藏
得分:0 
和四大淡水湖没啥本质区别
2014-03-30 14:57
gd6570
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2013-7-22
收藏
得分:0 
回复 4楼 日知己所无
程序报错了,不知道是什么回事,报错的是这一句
    private static Set<String> nameSet = new TreeSet<>();
    private static Set<String> sex_Set = new TreeSet<>();
    private static Set<String> age_Set = new TreeSet<>();
    private static Set<String> homeSet = new TreeSet<>();

报错语句是:Exception in thread "main" java.lang.Error: Unresolved compilation problem:

    at huoquqingkuang.main(huoquqingkuang.java:19)

这是怎么回事啊?
2014-04-07 20:58
nightwar
Rank: 2
等 级:论坛游民
帖 子:32
专家分:13
注 册:2012-3-25
收藏
得分:0 
程序报错了,不知道是什么回事,报错的是这一句
    private static Set<String> nameSet = new TreeSet<String>();
    private static Set<String> sex_Set = new TreeSet<String>();
    private static Set<String> age_Set = new TreeSet<String>();
    private static Set<String> homeSet = new TreeSet<String>(); //添加String  后面
2014-04-15 13:37
日知己所无
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:38
帖 子:427
专家分:2071
注 册:2014-3-22
收藏
得分:0 
回复 5 楼 gd6570
解决没有?

请帖完整代码和JDK的版本号
2014-04-19 20:10
王勇志
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2017-9-22
收藏
得分:0 
下面是代码  用基础写出来的你可以看看!
package com.regexp;

import java.util.ArrayList;
import java.util.List;

public class RegularExpression {
    List<String> list = new ArrayList<String>(); //储存四中姓氏
    List<String> list1 = new ArrayList<String>();//储存性别
    List<String> list2= new ArrayList<String>();//储存3种年龄
    List<String> list3= new ArrayList<String>();//储存3种地址
    List<String> list4= new ArrayList<String>();//储存所有组合
    String str,str1; //str为保存一种组合的字符串,str1为判断后唯一正确的一组组合字符串
   
    public void regularExpression(){
        list.add("姓李");list.add("姓张");list.add("姓陈");list.add("姓黄");
        list1.add("男");list1.add("女");
        list2.add("11");list2.add("12");list2.add("13");
        list3.add("广东");list3.add("广西");list3.add("湖南");
        //for循环将所有组合排列
        for (int i = 0; i < list.size(); i++) {
            for (int j = 0; j < list1.size(); j++) {
                for (int m = 0; m < list2.size(); m++) {
                    for (int k = 0; k < list3.size(); k++) {
                         str=list.get(i)+list1.get(j)+list2.get(m)+list3.get(k);
                        list4.add(str);
                    }
                }
            }
        }
        //for循环遍历所有组合判断出正确的一组
        for (int i = 0; i < list4.size(); i++) {
            list4.get(i);
            boolean a,b,c,d,e;
            //判断A说的话
            if(list4.get(i).substring(0, 2).equals("姓李")||
               list4.get(i).substring(2,3).equals("女")||
               list4.get(i).substring(3, 5).equals("13")||
               list4.get(i).substring(5).equals("广东")){
                a= true;
            }
            else{
                a= false;
            }
            //判断B说的话
            if(list4.get(i).substring(0, 2).equals("姓张")||
                       list4.get(i).substring(2,3).equals("男")||
                       list4.get(i).substring(3, 5).equals("11")||
                       list4.get(i).substring(5).equals("湖南")){
                        b= true;
                    }
                    else{
                        b= false;
                    }
            //判断c说的话
            if(list4.get(i).substring(0, 2).equals("姓陈")||
                       list4.get(i).substring(2,3).equals("女")||
                       list4.get(i).substring(3, 5).equals("13")||
                       list4.get(i).substring(5).equals("广东")){
                        c= true;
                    }
                    else{
                        c= false;
                    }
            //判断D说的话
            if(list4.get(i).substring(0, 2).equals("姓黄")||
                       list4.get(i).substring(2,3).equals("男")||
                       list4.get(i).substring(3, 5).equals("11")||
                       list4.get(i).substring(5).equals("广西")){
                        d= true;
                    }
                    else{
                        d= false;
                    }
            //判断E说的话
            if(list4.get(i).substring(0, 2).equals("姓张")||
                       list4.get(i).substring(2,3).equals("男")||
                       list4.get(i).substring(3, 5).equals("12")||
                       list4.get(i).substring(5).equals("广东")){
                        e= true;
                    }
                    else{
                        e= false;
                    }
            //判断只有五人的说的话中都有一个条件满足才是正确的一组
            if(a&&b&&c&&d&&e){
                 str1 = list4.get(i);
            }
        }
        //打印第一名信息
        System.out.println("第一名是:"+str1+"人");
        
    }
   
    public static void main(String[] args) {
        RegularExpression re = new RegularExpression();
        re.regularExpression();
    }
}
2017-09-22 17:54
快速回复:JAVA逻辑编程题,真心做不出来,麻烦大家了
数据加载中...
 
   



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

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