Aplicación que simula el juego de una lotería con cupones de 5 dígitos numéricos. En el código de la aplicación se indica el número del cupón al que se va a jugar en todos los sorteos (MI_NUMERO), el saldo inicial del que se parte (saldo) y el importe de cada sorteo (PRECIO_CUPON). La aplicación repetirá el sorteo sucesivamente hasta que se acierte el número completo o bien se acabe el saldo

import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Random;

public class Main {
    
    public static void main(String[] args) {        
        final float PRECIO_CUPON = 1.50f;
        
        final int MI_NUMERO = 65474;
        float saldo = 100;
        int numeroSorteo;
        int contadorApuestas = 0;
        
        NumberFormat formatoMoneda = NumberFormat.getCurrencyInstance();
        DecimalFormat formatoLoteria = new DecimalFormat("00000");
        
        Random random = new Random();
        
        do {
            numeroSorteo = random.nextInt(100000);
            System.out.println("Número del sorteo = " + formatoLoteria.format(numeroSorteo));

            saldo -= PRECIO_CUPON;
            // Comprobar acierto de 5 dígitos (35000€)
            if(MI_NUMERO == numeroSorteo) {
                System.out.println("Acierto del número completo (35000€): ");
                saldo += 35000;
            } else {
                // Comprobar acierto de número anterior (500€)
                if(MI_NUMERO == numeroSorteo - 1 || (MI_NUMERO == 99999 && numeroSorteo == 0)) {
                    System.out.println("Acierto del número completo anterior (500€): ");
                    saldo += 500;
                } else {
                    // Comprobar acierto de número posterior (500€)
                    if(MI_NUMERO == numeroSorteo + 1 || (MI_NUMERO == 0 && numeroSorteo == 99999)) {
                        System.out.println("Acierto del número completo posterior (500€): ");
                        saldo += 500;
                    } else {
                        // Comprobar acierto de 4 últimas cifras (200€)
                        if(MI_NUMERO % 10000 == numeroSorteo % 10000) {
                            System.out.print("Acierto de 4 dígitos (200€): ");
                            saldo += 200;
                        } else {
                            // Comprobar acierto de 3 últimas cifras (20€)
                            if(MI_NUMERO % 1000 == numeroSorteo % 1000) {
                                System.out.print("Acierto de 3 dígitos (20€): ");
                                saldo += 20;
                            } else {
                                // Comprobar acierto de 2 últimas cifras (6€)
                                if(MI_NUMERO % 100 == numeroSorteo % 100) {
                                    System.out.print("Acierto de 2 dígitos (6€): ");
                                    saldo += 6;
                                } else {
                                    // Comprobar acierto de última cifra (1.50€)
                                    if(MI_NUMERO % 10 == numeroSorteo % 10) {
                                        System.out.print("Acierto de última cifra (1.50€): ");
                                        saldo += 1.5;
                                    } else {
                                        // Comprobar acierto de primnera cifra (1.50€)
                                        if(MI_NUMERO / 10000 == numeroSorteo / 10000) {
                                            System.out.print("Acierto de primera cifra (1.50€): ");
                                            saldo += 1.5;
                                        } else {
                                            //System.out.print("NO ha sido premiado: ");
                                        }                                        
                                    }                         
                                }
                            }
                        }  
                    }
                }
            }                        
            System.out.println("Saldo = " + formatoMoneda.format(saldo));
            System.out.println();
            
            contadorApuestas++;            
        } while(MI_NUMERO != numeroSorteo && saldo >= PRECIO_CUPON);
        System.out.println("Num. apuestas = " + contadorApuestas);
    }
    
}