三位数彩票程序求优化代码

题目如下:

img


请大家赐教更简单的代码
总感觉我的方法有点繁琐了


```java
package ch3choose.exer15;/*
 * 孤鸿
 * 彩票
 * 2023/5/13
 */

import java.util.Scanner;

public class Exer15 {
    public static void main(String[] args) {
        int count = 0;
        Scanner input=new Scanner(System.in);
        //随机数公式
        int answer=100+(int)(Math.random()*((999-100)+1));
        System.out.println(answer);
        System.out.println("请输入你的号码");
        int num= input.nextInt();
        String s=Integer.toString(answer);
        System.out.println(answer);
        while (true){  //
            if(Integer.toString(num).length()==3){
                break;
            }
            else{
                num= input.nextInt();
            }
        }
        if(num==answer){    //如果两个数字相等 直接输出中奖信息
            System.out.println("奖金10000美元");
        }else {
            char[] arr = s.toCharArray();  //将中奖号码转换为字符数组
            char[]arr1=Integer.toString(num).toCharArray(); //将你输入的号码转换为字符数组。
            int j=0;
            for (j = 0; j<arr1.length; j++) {   //对两个数组进行比较
                for (int i = 0; i < arr.length; i++) {
                    if ((arr1[j])== arr[i]) {
                        count++;        //记录匹配上的字符的个数
                        break;
                    }
                }
            }
            if(count==3){
                System.out.println("你猜中了"+count+"个数字,奖金3000美元");
            }else if(count>=1){
                System.out.println("你猜中了"+count+"个数字,奖金1000美元");
            }
            else{
                System.out.println("你猜中了"+count+"个数字,没有中奖");
            }
        }
    }
}


```

该回答引用chatgpt:
自信点,写的很棒,我用ai生成感觉还没你写的优秀

import java.util.Random;
import java.util.Scanner;

public class LotteryGame {
    public static void main(String[] args) {
        // 产生三位整数的彩票
        Random random = new Random();
        int lottery = random.nextInt(900) + 100; // 生成 [100, 999] 之间的整数

        // 读取用户输入的数字
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一个三位整数:");
        int guess = scanner.nextInt();

        System.out.println("彩票号码为:" + lottery);

        // 判断用户是否中奖
        int lotteryDigit1 = lottery / 100;
        int lotteryDigit2 = lottery / 10 % 10;
        int lotteryDigit3 = lottery % 10;

        int guessDigit1 = guess / 100;
        int guessDigit2 = guess / 10 % 10;
        int guessDigit3 = guess % 10;

        if (guess == lottery) {
            System.out.println("恭喜你中了一等奖,奖金为 10,000 美元!");
        } else if (guessDigit1 == lotteryDigit1 && guessDigit2 == lotteryDigit2 && guessDigit3 == lotteryDigit3) {
            System.out.println("恭喜你中了二等奖,奖金为 3,000 美元!");
        } else if (guessDigit1 == lotteryDigit1 || guessDigit1 == lotteryDigit2 || guessDigit1 == lotteryDigit3
                || guessDigit2 == lotteryDigit1 || guessDigit2 == lotteryDigit2 || guessDigit2 == lotteryDigit3
                || guessDigit3 == lotteryDigit1 || guessDigit3 == lotteryDigit2 || guessDigit3 == lotteryDigit3) {
            System.out.println("恭喜你中了三等奖,奖金为 1,000 美元!");
        } else {
            System.out.println("很遗憾,你没有中奖。");
        }
    }
}


ai优化了你的代码

import java.util.Random;
import java.util.Scanner;

public class LotteryGame {
    public static void main(String[] args) {
        Random random = new Random();
        int lottery = random.nextInt(900) + 100; // 生成 [100, 999] 之间的整数

        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一个三位整数:");
        int guess = scanner.nextInt();

        System.out.println("彩票号码为:" + lottery);

        if (guess == lottery) {
            System.out.println("恭喜你中了一等奖,奖金为 10,000 美元!");
        } else {
            int count = 0;
            String lotteryStr = String.valueOf(lottery);
            String guessStr = String.valueOf(guess);

            for (int i = 0; i < guessStr.length(); i++) {
                if (lotteryStr.contains(String.valueOf(guessStr.charAt(i)))) {
                    count++;
                }
            }

            if (count == 3) {
                System.out.println("你猜中了" + count + "个数字,奖金为 3,000 美元!");
            } else if (count >= 1) {
                System.out.println("你猜中了" + count + "个数字,奖金为 1,000 美元!");
            } else {
                System.out.println("你猜中了" + count + "个数字,没有中奖。");
            }
        }
    }
}