Member 12773420 Ответов: 1

Как мне ... создать лотерейную программу из 4 цифр


привет, ребята, я действительно застрял, речь идет о лотерейной программе, которая случайным образом генерирует четырехзначное число и предлагает пользователю ввести четырехзначное число без использования массива и следуя этим правилам -если пользовательский ввод соответствует номеру лотереи в точном порядке, то награда составляет $ 10000 -если пользовательский ввод соответствует четырехзначному номеру в другом порядке, то награда составляет $5000-если пользовательский ввод соответствует трехзначному номеру в другом порядке, то награда составляет $2000 -если любая 1 или 2 цифра в пользовательском вводе соответствует лотерее, то награда составляет $500

я сделал это для 3-значного числа, но я не знаю, как это сделать для четырехзначного числа без массивов. :

Что я уже пробовал:

import java.util.Scanner;

public class Programming {

    public static void main(String[] args) {
        // Generate a lottery
        int lottery = (int) (Math.random() * 1000);
        // Prompt the user to enter a guess
        Scanner input = new Scanner(System.in);
        System.out.print("Enter your lottery pick (three digits): ");
        int guess = input.nextInt();

        // Get digits from lottery
        int lotteryDigit1 = lottery / 100;
        int lotteryDigit2 = (lottery % 100) / 10;
        int lotteryDigit3 = lottery % 10;

        // Get digits from guess
        int guessDigit1 = guess / 100;
        int guessDigit2 = (guess % 100) / 10;
        int guessDigit3 = guess % 10;

        System.out.println("The lottery number is " + lotteryDigit1
                + lotteryDigit2 + lotteryDigit3);

        // Check the guess
        if (guess == lottery) {
            System.out.println("Exact match: you win $10,000");
        } else if ((guessDigit1 == lotteryDigit2 && guessDigit2 == lotteryDigit1 && guessDigit3 == lotteryDigit3)
                || (guessDigit1 == lotteryDigit2
                && guessDigit1 == lotteryDigit3 && guessDigit3 == lotteryDigit1)
                || (guessDigit1 == lotteryDigit3
                && guessDigit2 == lotteryDigit1 && guessDigit3 == lotteryDigit2)
                || (guessDigit1 == lotteryDigit3
                && guessDigit2 == lotteryDigit2 && guessDigit3 == lotteryDigit1)
                || (guessDigit1 == lotteryDigit1
                && guessDigit2 == lotteryDigit3 && guessDigit3 == lotteryDigit2)) {
            System.out.println("Match all digits: you win $5,000");
        } else if (guessDigit1 == lotteryDigit1 || guessDigit1 == lotteryDigit2
                || guessDigit1 == lotteryDigit3 || guessDigit2 == lotteryDigit1
                || guessDigit2 == lotteryDigit2 || guessDigit2 == lotteryDigit3
                || guessDigit3 == lotteryDigit1 || guessDigit3 == lotteryDigit2
                || guessDigit3 == lotteryDigit3) {
            System.out.println("Match one digit: you win $1,000");
        } else {
            System.out.println("Sorry, no match");
        }
    }
}

[no name]

Не уверен, что у вас есть реальный вопрос. Вы сделали это для 3 чисел, но по какой-то странной необъяснимой причине вы не можете сделать то же самое для 4 чисел? А почему бы и нет?

Member 12773420

моя проблема в том, как я могу найти все возможные комбинации с четвертыми цифрами

[no name]

Точно так же, как вы сделали это с 3 цифрами. Если вы не можете внятно объяснить нам, людям, свою проблему, у вас нет никаких шансов объяснить ее решение компьютеру.

Patrice T

Трудно поверить, что вы можете написать программу для 3 цифр и не можете адаптироваться для 4 цифр.
В чем именно заключается ваша проблема ?

Member 12773420

моя проблема в том, как я могу найти все возможные комбинации с четвертыми цифрами

1 Ответов

Рейтинг:
2

Richard MacCutchan

Воспользуйся Строку.формат[^] чтобы преобразовать ваше случайное число в строку. Затем вы можете сделать простые сравнения строк и символов между вашим номером и тем, что вводит пользователь. Плюс в том, что он будет работать для любого количества цифр.


Member 12773420

не могли бы вы показать мне пример того, что вы имеете в виду, так как я новичок в java и не понимаю этого

Richard MacCutchan

Весь смысл этого упражнения в том, чтобы заставить вас задуматься над проблемой и найти пути ее решения. Речь идет не о Java, а о разработке шагов, необходимых для достижения решения. Начните с записи вещей на бумаге, включая некоторые тестовые входы.
Например, если пользователь набирает "3471", вы можете легко сравнить его с вашим собственным сгенерированным номером в виде строки (например,"2531"). Но что вам нужно сделать, чтобы проверить те же 4, 3 или 2 цифры в другом порядке?

Как только вы запишете все шаги, вы можете превратить их в Java-код, который должен быть самой простой частью упражнения.

Member 12773420

кто-нибудь может мне помочь, пожалуйста?

Richard MacCutchan

Вам действительно нужно приложить усилия, чтобы сделать свое собственное мышление, а не ожидать, что другие люди сделают это за вас. Это не сложное упражнение, вам просто нужно сесть с ручкой и бумагой и заставить свой ум работать.

Используйте Google, чтобы узнать о массивах в C и некоторых функциях strXXX для работы со строками символов.