Heim > Java > javaLernprogramm > Hauptteil

Verwenden Sie Java-Code, um den Geburtstag Ihrer Freundin zu erraten, was sehr interessant ist!

Freigeben: 2023-08-23 14:39:50
nach vorne
896 Leute haben es durchsucht

Heute teile ich mit Ihnen: Erraten Sie das Java-Geburtstagsspiel

最近看到一个很有趣的小游戏:
询问朋友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
Der Geburtstag ist die Summe der ersten Zahlen in jedem Satz, in dem dieser Tag vorkommt. Wenn der Geburtstag beispielsweise 19 ist, erscheint er in den Sätzen 1, 2 und 5. Die ersten Zahlen der drei Sätze sind jeweils 1, 2 und 16, ihre Summe ist 19.
Verwenden Sie Java-Code, um den Geburtstag Ihrer Freundin zu erraten, was sehr interessant ist!
In Java implementiert:
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 + "!");

    }
}
Nach dem Login kopieren
Ausgabe:
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!
Nach dem Login kopieren
Dieses Spiel ist sehr einfach zu programmieren. Vielleicht sind Sie neugierig und möchten wissen, wie man dieses Spiel erstellt. Tatsächlich ist die Mathematik hinter diesem Spiel sehr einfach. Diese Zahlen sind keine willkürliche Menge. Die Platzierung in den fünf Sets ist sehr durchdacht.
Die ersten Zahlen dieser fünf Sätze sind 1, 2, 4, 8 und 16, die jeweils den Binärzahlen1, 10, 100, 1000 und 10000 . Dezimalzahlen von 1 bis 31 können durch bis zu fünf Binärziffern dargestellt werden, wie in Abbildung 3-2a dargestellt. Nehmen wir an, es ist: rgb(233, 105, 0);background: rgb(248, 248, 248);">b5b4b3b2b1, Dann 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
Verwenden Sie Java-Code, um den Geburtstag Ihrer Freundin zu erraten, was sehr interessant ist!
🎜🎜 wie im Bild gezeigt. Wenn die Binärzahl eines bestimmten Tages im b-Bit eine Ganzzahl 1 ist, sollte die Zahl in Setk erscheinen. Beispiel: Die Binärzahl der Zahl 19 ist 10011, daher sollte sie in Satz 1, Satz 2 und Satz 5 erscheinen. Es ist eine Binärzahl1+10+10000=10011oder Dezimalzahl1+2 + 16=19. 🎜🎜Die Binärzahl der Zahl 31 ist 11111, daher erscheint sie in Satz 1, Satz 2, Satz 3, Satz 4 und Satz 5. 🎜Es ist eine Binärzahl🎜1+10+100+1000+10000=11111🎜, oder Dezimalzahl🎜1+2+4+8+16=31🎜. 🎜🎜🎜🎜🎜🎜 🎜🎜

Das obige ist der detaillierte Inhalt vonVerwenden Sie Java-Code, um den Geburtstag Ihrer Freundin zu erraten, was sehr interessant ist!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:Java后端技术全栈
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage