wipeout 2023-05-15 22:26 采纳率: 33.3%
浏览 16

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

题目如下:

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+"个数字,没有中奖");
            }
        }
    }
}


```

  • 写回答

1条回答 默认 最新

  • 瞬间的未来式 2023-05-15 22:57
    关注

    该回答引用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 + "个数字,没有中奖。");
                }
            }
        }
    }
    
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 5月15日

悬赏问题

  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化