Java初学笔记——13.询问五次猜测出生日期

Java初学笔记——13.询问五次猜测出生日期,第1张

package 字符串;

import java.util.Scanner;

//需求:
	//询问五次得到生日
//提示:
	//生日最多不超过31
	//31 = 16 + 8 + 4 + 2 + 1
	//就是说31以内的任何一个数我们都可以用5位二进制来表示
	//我们可以通过五次询问来确定这五位都是多少
//思路:
  //1.准备代表五个集合的五个字符串,这个字符串要在内部换行
	//编号为1的集合的内容:第一位上为1的1~31间数字的集合
	//编号为2的集合的内容:第二位上为1的1~31间数字的集合
	//编号为3的集合的内容:第三位上为1的1~31间数字的集合
	//编号为4的集合的内容:第四位上为1的1~31间数字的集合
	//编号为5的集合的内容:第五位上为1的1~31间数字的集合
  //2.准备好后,开始交互:
	//依次询问:
	//是否在第一个集合里,用户输入0或1
	//day += answer * 1;
	//是否在第二个集合里,用户输入0或1
	//day += answer * (1<<1);
	//是否在第三个集合里,用户输入0或1
	//day += answer * (1<<2);
	//是否在第四个集合里,用户输入0或1
	//day += answer * (1<<3);
	//是否在第五个集合里,用户输入0或1
	//day += answer * (1<<4);
  //最终day就是生日所在

public class Case7_猜生日 {
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;
	
	Scanner input  = new Scanner(System.in);
	System.out.println("你的生日号数在这个集合里吗?\n");
	System.out.println(set1);
	System.out.println("\n如果在,请输入1;如果不在,请输入0:");
	int answer = input.nextInt();
	day += answer * 1;
	
	
	System.out.println("你的生日号数在这个集合里吗?\n");
	System.out.println(set2);
	System.out.println("\n如果在,请输入1;如果不在,请输入0:");
	answer = input.nextInt();
	day += answer * (1<<1);
	//或day += answer * 2;
	
	System.out.println("你的生日号数在这个集合里吗?\n");
	System.out.println(set3);
	System.out.println("\n如果在,请输入1;如果不在,请输入0:");
	answer = input.nextInt();
	day += answer * (1<<2);
	//或day += answer * 4;
	
	System.out.println("你的生日号数在这个集合里吗?\n");
	System.out.println(set4);
	System.out.println("\n如果在,请输入1;如果不在,请输入0:");
	answer = input.nextInt();
	day += answer * (1<<3);
	//或day += answer * 8;
	
	System.out.println("你的生日号数在这个集合里吗?\n");
	System.out.println(set5);
	System.out.println("\n如果在,请输入1;如果不在,请输入0:");
	answer = input.nextInt();
	day += answer * (1<<4);
	//或day += answer * 16;
	
	System.out.println("你的生日是:" + day);
}
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/871618.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存