ホームページ  >  記事  >  Java  >  Java コードを使用してガールフレンドの誕生日を推測します。これは非常に興味深いものです。

Java コードを使用してガールフレンドの誕生日を推測します。これは非常に興味深いものです。

Java后端技术全栈
Java后端技术全栈転載
2023-08-23 14:39:50893ブラウズ

今日は、誕生日を当てる Java ミニ ゲームを紹介します。

私は最近、非常に興味深い小さなゲームを見ました:
友達に 5 つの質問をして、その人の生まれた日を調べてください。各質問は、彼の誕生日が 5 つの数字のセットの 1 つであるかどうかを尋ねます。
5 つのセットは次のとおりです:
set1: 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31
set2 :2 3 6 7 10 11 14 15 18 19 22 23 26 27 30 31
set3:4 5 6 7 12 13 14 15
#set4 :
8 9 10 11 12 13 14 15 24 25 26 27 28 29 30 31
set5:
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
誕生日は、この日が表示される各セットの最初の数字の合計です。たとえば、誕生日が 19 の場合、セット 1、2、および 5 に表示されます。最初の数字は 1、2、16 で、それらの合計は 19 です。
Java コードを使用してガールフレンドの誕生日を推測します。これは非常に興味深いものです。
Java での実装は次のとおりです:
package 贪心;
/*
作者     :XiangLin
创建时间 :2023/8/23 10:53
文件     :GussBirthday.java
IDE      :IntelliJ IDEA
*/

import java.util.Scanner;

public class GussBirthday {
    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";

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

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

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

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

        int  day = 0;

        // Create Scanner
        Scanner input = new Scanner(System.in);

        // Prompt the user to answer questions
        System.out.println("Is your birthday in Set1?\n");
        System.out.println(set1);
        System.out.println("\nEnter 0 for No and 1 for Yes: ");
        int answer = input.nextInt();

        if (answer == 1)
            day += 1;

        // Prompt the user to answer questions
        System.out.println("Is your birthday in Set2?\n");
        System.out.println(set2);
        System.out.println("\nEnter 0 for No and 1 for Yes: ");
        answer = input.nextInt();

        if (answer == 1)
             day += 2;

        // Prompt the user to answer questions
        System.out.println("Is your birthday in Set3?\n");
        System.out.println(set3);
        System.out.println("\nEnter 0 for No and 1 for Yes: ");
        answer = input.nextInt();

        if (answer == 1)
            day += 4;

        // Prompt the user to answer questions
        System.out.println("Is your birthday in Set4?\n");
        System.out.println(set4);
        System.out.println("\nEnter 0 for No and 1 for Yes: ");
        answer = input.nextInt();

        if (answer == 1)
             day += 8;

        // Prompt the user to answer questions
        System.out.println("Is your birthday in Set5?\n");
        System.out.println(set5);
        System.out.println("\nEnter 0 for No and 1 for Yes: ");
        answer = input.nextInt();

        if (answer == 1)
            day += 16;

        System.out.println("\nYour birthday is " + day + "!");

    }
}
出力:
Is your birthday in Set1?

1 3 5 7
9 11 13 15
17 19 21 23
25 27 29 31

Enter 0 for No and 1 for Yes: 
1
Is your birthday in Set2?

2 3 6 7
10 11 14 15
18 19 22 23
26 27 30 31

Enter 0 for No and 1 for Yes: 
1
Is your birthday in Set3?

 4  5  6  7
 12 13 14 15
 20 21 22 23
 28 29 30 31

Enter 0 for No and 1 for Yes: 
0
Is your birthday in Set4?

 8  9 10 11
 12 13 14 15
 24 25 26 27
 28 29 30 31

Enter 0 for No and 1 for Yes: 
0
Is your birthday in Set5?

 16 17 18 19
 20 21 22 23
 24 25 26 27
 28 29 230 31

Enter 0 for No and 1 for Yes: 
1

Your birthday is 19!
このゲームはプログラミングが非常に簡単です。このゲームの作成方法を知りたいと思われるかもしれません。実際、このゲームの背後にある計算は非常に簡単です。これらの数値は任意のセットではありません。 5つのセットにそれらを配置する方法は非常によく考えられています。
これら 5 つのセットの最初の数字は 1、2、4、8、および 16 で、それぞれ 2 進数 1、10、100、1000、および 10000 に対応します。図 3-2a に示すように、1 ~ 31 の 10 進数は最大 5 桁の 2 進数で表現できます。 b5b4b3b2b1, であるとすると、 b5b4b3b2b1=b50000 b4000 b300 b20 b1,
#写真が示すように。特定の日の 2 進数が b ビットの整数 1 である場合、その数値は Setk に表示されるはずです。たとえば、数字 19 の 2 進数は 10011 であるため、セット 1、セット 2、およびセット 5 に表示される必要があります。これは、2 進数
1 10 10000=10011 または 10 進数 1 2 16=19 です。
2 進数 31 は 11111 であるため、セット 1、セット 2、セット 3、セット 4、およびセット 5 に表示されます。
これは 2 進数です。1 10 100 1000 10000=11111 または 10 進数です。1 2 4 8 16=31
Java コードを使用してガールフレンドの誕生日を推測します。これは非常に興味深いものです。

以上がJava コードを使用してガールフレンドの誕生日を推測します。これは非常に興味深いものです。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はJava后端技术全栈で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。