「已注销」 2022-04-09 10:01 采纳率: 50%
浏览 245

特殊时间 时间写成 4 位后由 3 个一种数字和 1 个另一种数字组成。

2022 年 2 月 22 日 22:20 是一个很有意义的时间,年份为 2022,由 3 个 2
和 1 个 0 组成,如果将月和日写成 4 位,为 0222,也是由 3 个 2 和 1 个 0 组
成,如果将时间中的时和分写成 4 位,还是由 3 个 2 和 1 个 0 组成。
小蓝对这样的时间很感兴趣,他还找到了其它类似的例子,比如 111 年 10
月 11 日 01:11,2202 年 2 月 22 日 22:02 等等。
请问,总共有多少个时间是这种年份写成 4 位、月日写成 4 位、时间写成
4 位后由 3 个一种数字和 1 个另一种数字组成。注意 1111 年 11 月 11 日 11:11
不算,因为它里面没有两种数字。

  • 写回答

4条回答 默认 最新

  • 嘉祐-小萝卜算子 2022-04-09 20:51
    关注
    
    
    import java.util.ArrayList;
    import java.util.List;
    import java.text.SimpleDateFormat;
    import java.text.ParseException;
    import java.util.Date;
    
    public class riqi{
        public static void main(String[] args) {
            
            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmm");
            //严格计算日期
            sdf.setLenient(false);
            List<String> resultList=new ArrayList<>();
            //先看看 两个不同的数字有多少种组合
            for(int i=0;i<10;i++){
                //0001 0010 0100 1000
                //1110 1101 1011 0111
                for(int j=i+1;j<10;j++){
                    int zong=0;
                    List<String> list=new ArrayList<>();
                    list.add(i+""+i+""+i+""+j);
                    list.add(i+""+i+""+j+""+i);
                    list.add(i+""+j+""+i+""+i);
                    list.add(j+""+i+""+i+""+i);
                
                    for(int m=0;m<list.size();m++){
                        int value=Integer.valueOf(list.get(m));
                        for(int n=0;n<list.size();n++){
                            for(int p=0;p<list.size();p++){
                                String date=list.get(m)+list.get(n)+list.get(p);
                                try {
                                    sdf.parse(date);
                                } catch (ParseException e) {
                                    continue;
                                }
                                zong++;
                                resultList.add(date);
                            }
                        }
                    }
    
                    list=new ArrayList<>();
                    list.add(j+""+j+""+j+""+i);
                    list.add(j+""+j+""+i+""+j);
                    list.add(j+""+i+""+j+""+j);
                    list.add(i+""+j+""+j+""+j);
                    for(int m=0;m<list.size();m++){
                        int value=Integer.valueOf(list.get(m));
                        for(int n=0;n<list.size();n++){
                            for(int p=0;p<list.size();p++){
                                String date=list.get(m)+list.get(n)+list.get(p);
                                try {
                                    sdf.parse(date);
                                } catch (ParseException e) {
                                    continue;
                                }
                                zong++;
                                resultList.add(date);
                            }
                        }
                    }
                    if(zong>0)
                        System.out.println(i+"+"+j+"的结果共有"+zong+"种");
                }
            }
            System.out.println(resultList.size());
        }
        
    }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 4月9日