首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

张老师的生日有关问题 求java code

2012-05-04 
张老师的生日问题 求java code大家都知道张老师生日问题 这道面试题吧? 我再发一下小明和小强都是张老师的

张老师的生日问题 求java code
大家都知道张老师生日问题 这道面试题吧? 我再发一下

小明和小强都是张老师的学生,张老师的生日是M月N日,2人都知道张老师的生日是下列10组中的一天,张老师把M值告诉了小明,把N值告诉了小强,张老师问他们知道他的生日是那一天吗? 
    3月4日 3月5日 3月8日 
    6月4日 6月7日 
    9月1日 9月5日 
    12月1日 12月2日 12月8日 
    小明说:如果我不知道的话,小强肯定也不知道 
    小强说:本来我也不知道,但是现在我知道了 
    小明说:哦,那我也知道了 
    请根据以上对话推断出张老师的生日是哪一天

我想求这个题的java code!

有人知道该怎么写吗???

[解决办法]

Java code
public class Test{        public static void main(String[] args) {        System.out.println(getDate());    }        static String getDate(){        String[] dates = new String[]{"3-4","3-5","3-8","6-4","6-7","9-1","9-5","12-1","12-2","12-8"};        //排除从日期可以确定月份的生日        String[] datesTemp = dates.clone();        int count = 0;        for(int i = 0;i < datesTemp.length;i++){            count = 0;            String day = datesTemp[i].split("-")[1];            for(int j = 0;j < dates.length;j++){                if(datesTemp[j].split("-")[1].equals(day)){                    count++;                }            }            if(count == 1){                String mouth = datesTemp[i].split("-")[0];                for(int j = 0;j < dates.length;j++){                    if(datesTemp[j].split("-")[0].equals(mouth)){                        dates[j] = "";                    }                }            }                    }        //获取重复的日子        String day = "";        for(int i = 0;i < dates.length;i++){            count = 0;            for(int j = i + 1;j < dates.length;j++){                if(!dates[j].equals("") && dates[i].split("-")[1].equals(dates[j].split("-")[1])){                    count++;                }            }            if(count != 0){                day = dates[i].split("-")[1];                break;            }        }        //确定只有2个生日的月份        String mouth = "";        for(int i = 0;i < dates.length;i++){            count = 0;            for(int j = 0;j < dates.length;j++){                mouth =  dates[i].split("-")[0];                if(!dates[j].equals("") && mouth.equals(dates[j].split("-")[0])){                    count++;                }            }            if(count != 2){                for(int j = 0;j < dates.length;j++){                    if(mouth.equals(dates[j].split("-")[0])){                        dates[j] = "";                    }                }            }        }                //由于小强知道了,那么就不是重复的日子        for(int i = 0;i < dates.length;i++){            if(!dates[i].equals("") && day.equals(dates[i].split("-")[1])){                dates[i] = "";            }        }        for(int i = 0;i < dates.length;i++){            if(!dates[i].equals(""))                return dates[i];        }        return null;    }} 

热点排行