Rumah  >  Artikel  >  Java  >  Gunakan kod Java untuk meneka hari lahir teman wanita anda, yang sangat menarik!

Gunakan kod Java untuk meneka hari lahir teman wanita anda, yang sangat menarik!

Java后端技术全栈
Java后端技术全栈ke hadapan
2023-08-23 14:39:50892semak imbas

Hari ini saya akan berkongsi dengan anda: Teka permainan Java hari jadi

最近看到一个很有趣的小游戏:
询问朋友5个问题,找到他出生在一个月的哪一天。每个问题都是询问他的生日是否是5个数字集合中的一个。
这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
Hari lahir ialah jumlah nombor pertama setiap set di mana hari ini muncul Sebagai contoh, jika hari lahir ialah 19, maka ia akan muncul dalam set 1, 2 dan 5. Nombor pertama daripada tiga set. masing-masing adalah 1, 2 dan 16, jumlahnya ialah 19.
Gunakan kod Java untuk meneka hari lahir teman wanita anda, yang sangat menarik!
Pelaksanaan dalam Java ialah:
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 + "!");

    }
}
Output:
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!
Permainan ini sangat mudah untuk diprogramkan. Anda mungkin ingin tahu bagaimana untuk mencipta permainan ini. Malah, matematik di sebalik permainan ini sangat mudah. Nombor ini bukan set sembarangan. Cara mereka diletakkan dalam lima set sangat difikirkan dengan baik.
Nombor pertama daripada lima set ini masing-masing ialah 1, 2, 4, 8 dan 16, yang masing-masing sepadan dengan nombor binari1, 10, 100, 1000 dan 10000. Nombor perpuluhan dari 1 hingga 31 boleh diwakili sehingga lima digit binari, seperti yang ditunjukkan dalam Rajah 3-2a. Katakan ia ialah : rgb(233, 105, 0);background: rgb(248, 248, 248);">b5b4b3b2b1, Kemudian b5b4b3b2b1=b50000 + b4000 + b300 + b20+b1, 1、10、100、1000和10000。从1到31的十进制数最多用五个二进制数就可以表示,如图3-2a所示。假设它是b5b4b3b2b1那么b5b4b3b2b1=b50000 + b4000 + b300 + b20+b1
如图所示。如果某天的二进制数在b位为整数1,那么该数就该出现在Setk中。例如:数字19的二进制是10011,所以它就该出现在集合1、集合2和集合5中。它就是二进制数1+10+10000=10011或者十进制数1+2+16=19
数字31的二进制是11111,所以它就会出现在集合1,集合2、集合3、集合4和集合5中。它就是二进制数1+10+100+1000+10000=11111,或是十进制数1+2+4+8+16=31
Gunakan kod Java untuk meneka hari lahir teman wanita anda, yang sangat menarik!
🎜🎜 seperti yang ditunjukkan dalam gambar. Jika nombor perduaan hari tertentu ialah integer 1 dalam bit b, maka nombor itu harus muncul dalam Setk. Sebagai contoh: nombor perduaan nombor 19 ialah 10011, jadi ia sepatutnya muncul dalam set 1, set 2 dan set 5. Ia ialah nombor binari1+10+10000=10011atau nombor perpuluhan1+2 + 16=19. 🎜🎜Nombor binari nombor 31 ialah 11111, jadi ia akan muncul dalam set 1, set 2, set 3, set 4 dan set 5. 🎜Ia ialah nombor binari🎜1+10+100+1000+10000=11111🎜, atau nombor perpuluhan🎜1+2+4+8+16=31🎜. . A 2EFCxI0PDt7F67rcziaYFh4ibNPPm1ib3GfxIuUYo6ib7Gsulr6ngvibAbx1vBA / 0?wx_fmt=png" data-id="MzAwODc2ODgzMw==" data-nickname="Programmer for fifty cents" data-pluginname="mpprofile" data-signature="Fokus pada data besar dan teknologi berkaitan java, mari belajar bersama , Membesar bersama dan mencintai kehidupan dengan mesra bersama.">

Atas ialah kandungan terperinci Gunakan kod Java untuk meneka hari lahir teman wanita anda, yang sangat menarik!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:Java后端技术全栈. Jika ada pelanggaran, sila hubungi admin@php.cn Padam