写一个彩票程序:随机生成9个随机数(100~999之间)模拟该期彩票号码,不能重复,存入集合中。从键盘输入3个数模拟用户购买号码。

package com.wr.demo;

import java.util.HashSet;

import java.util.Random;

import java.util.Scanner;

import java.util.Set;

public class test06 {

    public static void main(String[] args) {

        Set<Integer> lotteryNumbers = RanLotteryNumbers();

        Set<Integer> userNumbers = getUserNumbers();

        int matchedCount = MatchedNumbers(lotteryNumbers, userNumbers);

        System.out.println("本期彩票号码是:" + lotteryNumbers);

        System.out.println("用户购买的号码是:" + userNumbers);

        System.out.println("中了" + matchedCount + "个号");

        if (matchedCount == 3) {

            System.out.println("恭喜中了一等奖!");

        } else if (matchedCount == 2) {

            System.out.println("恭喜中了二等奖!");

        } else if (matchedCount == 1) {

            System.out.println("恭喜中了三等奖!");

        } else {

            System.out.println("很遗憾,未中奖!");

        }

    }

    private static Set<Integer> RanLotteryNumbers() { //随机生成三个号码

        Set<Integer> lotteryNumbers = new HashSet<>();

        Random random = new Random();

        while (lotteryNumbers.size() < 9) {

            int number = random.nextInt(900) + 100;

            lotteryNumbers.add(number);

        }

        return lotteryNumbers;

    }

    private static Set<Integer> getUserNumbers() {   //获取购买的号码

        Set<Integer> userNumbers = new HashSet<>();

        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入您购买的号码(3个不重复的三位数,以空格分隔):");

        while (userNumbers.size() < 3) {

            int number = scanner.nextInt();

            if (number >= 100 && number <= 999) {

                userNumbers.add(number);

            } else {

                System.out.println("请输入有效的三位数!");

            }

        }

        return userNumbers;

    }

    private static int MatchedNumbers(Set<Integer> lotteryNumbers, Set<Integer> userNumbers) {

        int count = 0;

        for (int number : userNumbers) {

            if (lotteryNumbers.contains(number)) {

                count++;

            }

        }

        return count;

    }

}

实验运行截图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值