Maison > Java > javaDidacticiel > Utilisez du code Java pour deviner l'anniversaire de votre petite amie, ce qui est très intéressant !

Utilisez du code Java pour deviner l'anniversaire de votre petite amie, ce qui est très intéressant !

Libérer: 2023-08-23 14:39:50
avant
905 Les gens l'ont consulté

Aujourd'hui, je vais partager avec vous : le jeu Java devinez l'anniversaire

最近看到一个很有趣的小游戏:
询问朋友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
L'anniversaire est la somme des premiers chiffres de chaque ensemble dans lequel ce jour apparaît. Par exemple, si l'anniversaire est le 19, alors il apparaîtra dans les ensembles 1, 2 et 5. Les premiers chiffres des trois ensembles. valent respectivement 1, 2 et 16, leur somme est 19.
Utilisez du code Java pour deviner l'anniversaire de votre petite amie, ce qui est très intéressant !
Implémenté en 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 + "!");

    }
}
Copier après la connexion
Sortie :
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!
Copier après la connexion
Ce jeu est très simple à programmer. Vous pourriez être curieux de savoir comment créer ce jeu. En fait, le calcul derrière ce jeu est très simple. Ces nombres ne constituent pas un ensemble arbitraire. La manière dont ils sont placés dans les cinq sets est très bien pensée.
Les premiers nombres de ces cinq ensembles sont respectivement 1, 2, 4, 8 et 16, qui correspondent respectivement aux nombres binairesPuis 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
Utilisez du code Java pour deviner l'anniversaire de votre petite amie, ce qui est très intéressant !
🎜🎜 comme indiqué sur l'image. Si le nombre binaire d'un certain jour est un entier 1 dans le bit b, alors le nombre doit apparaître dans Setk. Par exemple : le nombre binaire du nombre 19 est 10011, il doit donc apparaître dans l'ensemble 1, l'ensemble 2 et l'ensemble 5. Il s'agit d'un nombre binaire1+10+10000=10011ou nombre décimal1+2 + 16=19. 🎜🎜Le nombre binaire du nombre 31 est 11111, il apparaîtra donc dans l'ensemble 1, l'ensemble 2, l'ensemble 3, l'ensemble 4 et l'ensemble 5. 🎜C'est un nombre binaire🎜1+10+100+1000+10000=11111🎜, ou nombre décimal🎜1+2+4+8+16=31🎜. 🎜🎜🎜🎜🎜🎜 🎜🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:Java后端技术全栈
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal