猜生日

猜生日

通过一个三维数组来存储五个集合的数字来简化程序,然后循环提示用户进行回答,首先显示每个集合的数字,然后提示用户回答这个生日是否在这个集合当中。如果该天实在某个集合当中,那么集合的第一个数字就将被加到变量day。

在本程序中,每个集合的数字并不是随便设置的,你可以发现生日的天数在一个月当中,是小于32的,完全可以用五位二进制数来表示,第一个集合当中的数字是第一位为1的数字集合,第二个集合是第二位为1的数字集合,以此类推。
当你的生日在该集合当中,就说明这个集合所对应的位为1,从而猜出了你的生日。

Java实现代码

import java.util.Scanner;

public class Test{
    public static void main(String[] args){
        int day = 0;
        int answer;

        int[][][] dates = {
                {{1,3,5,7}, {9,11,13,15},{17,19,21,23},{25,27,29,31}},
                {{2,3,6,7},{10,11,14,15},{18,19,22,23},{26,27,30,31}},
                {{4,5,6,7},{12,13,14,15},{20,21,22,23},{28,29,30,31}},
                {{8,9,10,11},{12,13,14,15},{24,25,26,27},{28,29,30,31}},
                {{16,17,18,19},{20,21,22,23},{24,25,26,27},{28,29,20,31}}};
                
        Scanner input  = new Scanner((System.in));
        
        for(int i = 0;i<5;i++){
        
            System.out.println("Is your birthday inn Set" + (i + 1) +"?");
            
            for(int j = 0;j<4;j++){
            
                for(int k =0;k<4;k++)
                    System.out.printf("%4d",dates[i][j][k]);
                    
                System.out.println();
            }

            System.out.print("\nEnter 0 for No and 1 for Yes: ");
            answer =  input.nextInt();

            if(answer == 1)
                day += dates[i][0][0];
        }

        System.out.println("Your birth day is " + day);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值