小游戏——猜猜你的生日

import java.util.Scanner;
import javax.swing.JOptionPane;

public class learningAddition {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		String month1=
			" 1 3 5 7 9 11\n";
		String month2=
			" 2 3 6 7 10 11\n";
		String month3=
			" 4 5 6 7 12\n";
		String month4=
			" 8 9 10 11 12\n";
		/*/*/
		String day1=
			" 1  3  5  7\n"+
			" 9 11 13 15\n"+
			"17 19 21 23\n"+
			"25 27 29 31\n";
		String day2=
			" 2  3  6  7\n"+
			"10 11 14 15\n"+
			"18 19 22 23\n"+
			"26 27 30 31\n";
		String day3=
			" 4  5  6  7\n"+
			"12 13 14 15\n"+
			"20 21 22 23\n"+
			"28 29 30 31\n";
		String day4=
			" 8  9 10 11\n"+
			"12 13 14 15\n"+
			"24 25 26 27\n"+
			"28 29 30 31\n";
		String day5=
			"16 17 18 19\n"+
			"20 21 22 23\n"+
			"24 25 26 27\n"+
			"28 29 30 31\n";
		int day=0,month=0;
		int answer;
		answer=JOptionPane.showConfirmDialog(null, 
				"这里有你生日的月份吗?\n"+month1);
		if(answer==JOptionPane.YES_OPTION)
			month+=1;
		answer=JOptionPane.showConfirmDialog(null, 
				"这里有你生日的月份吗?\n"+month2);
		if(answer==JOptionPane.YES_OPTION)
			month+=2;
		answer=JOptionPane.showConfirmDialog(null, 
				"这里有你生日的月份吗?\n"+month3);
		if(answer==JOptionPane.YES_OPTION)
			month+=4;
		answer=JOptionPane.showConfirmDialog(null, 
				"这里有你生日的月份吗?\n"+month4);
		if(answer==JOptionPane.YES_OPTION)
			month+=8;
		
		answer=JOptionPane.showConfirmDialog(null, 
				"这里有你生日的日期吗?\n"+day1);
		if(answer==JOptionPane.YES_OPTION)
			day+=1;
		
		answer=JOptionPane.showConfirmDialog(null, 
				"这里有你生日的日期吗?\n"+day2);
		if(answer==JOptionPane.YES_OPTION)
			day+=2;
		
		answer=JOptionPane.showConfirmDialog(null, 
				"这里有你生日的日期吗?\n"+day3);
		if(answer==JOptionPane.YES_OPTION)
			day+=4;
		
		answer=JOptionPane.showConfirmDialog(null, 
				"这里有你生日的日期吗?\n"+day4);
		if(answer==JOptionPane.YES_OPTION)
			day+=8;
		
		answer=JOptionPane.showConfirmDialog(null, 
				"这里有你生日的日期吗?\n"+day5);
		if(answer==JOptionPane.YES_OPTION)
			day+=16;
		
		JOptionPane.showMessageDialog(null, "你的生日是"+month+"月"+day+"日");
	}

}


原理

转换为二进制

1    =》  1

2    =》  10

4    =》  100

8    =》  1000

16  =》  10000

这几个二进制数可以表示 1~31 内的所有数

比如 22 转换为二进制是10110=10000+100+10,所以22在 16,4,2 的框框里都有

算的时候把每一个框框的第一个数加起来就可以了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值