A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 周超 中级黑马   /  2012-12-20 12:36  /  1230 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

猜猜你的生日是几号吧...

import javax.swing.JOptionPane;

public class GuseeBrithdayUsingConfirmationDialog
{
        public static void main(String[] args)
        {
                String set1 =
                "1   3  5  7\n" +
                "9  11 13 15\n" +
                "17 19 21 23\n" +
                "25 27 29 31\n";

                String set2 =
                "2  3  6  7\n" +
                "10 11 14 15\n" +
                "18 19 22 23\n" +
                "26 27 30 31\n";

                String set3 =
                "4  5  6  7\n" +
                "12 13 14 15\n" +
                "20 21 22 23\n" +
                "28 29 30 31\n";
               

                String set4 =
                "8  9  10  11\n" +
                "12 13 14  15\n" +
                "24 25 26  27\n" +
                "28 29 30  31\n";

                String set5 =
                "16 17 18 19\n" +
                "20 21 22 23\n" +
                "24 25 26 27\n" +
                "28 29 30 31\n";

        int day = 0;

        int answer = JOptionPane.showConfirmDialog(null,"你的生日在这些数字里面吗?\n" + set1);
       
        if(answer==JOptionPane.YES_OPTION)
                day+=1;
       
        answer=JOptionPane.showConfirmDialog(null,"你的生日在这些数字里面吗?\n" + set2);
       
        if(answer==JOptionPane.YES_OPTION)
                day+=2;
       
        answer=JOptionPane.showConfirmDialog(null,"你的生日在这些数字里面吗?\n" + set3);
       
        if(answer==JOptionPane.YES_OPTION)
                day+=4;
       
        answer=JOptionPane.showConfirmDialog(null,"你的生日在这些数字里面吗?\n" + set4);
       
        if(answer==JOptionPane.YES_OPTION)
                day+=8;
       
        answer=JOptionPane.showConfirmDialog(null,"你的生日在这些数字里面吗?\n" + set5);
       
        if(answer==JOptionPane.YES_OPTION)
                day+=16;
       
        JOptionPane.showMessageDialog(null,"你的生日是" + day + "!");
        System.exit(0);
        }
       
}

这个游戏的五个集合中的第一个数字分别是1,2,4,8,16;对应的二进制数是1,10,100,1000,10000;从1到31的十进制数最多用5个二进制数表示就可以了,这就是其中的原理.

1 个回复

倒序浏览
What are you doing ?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马