Java黑皮书课后题第3章:**3.15(游戏:彩票)修改程序清单3-8,产生三位整数的彩票。程序提示用户输入一个三位整数,然后依照规则判定用户是否赢得奖金
生活随笔
收集整理的這篇文章主要介紹了
Java黑皮书课后题第3章:**3.15(游戏:彩票)修改程序清单3-8,产生三位整数的彩票。程序提示用户输入一个三位整数,然后依照规则判定用户是否赢得奖金
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
**3.15(游戲:彩票)修改程序清單3-8,產生三位整數的彩票。程序提示用戶輸入一個三位整數,然后依照規則判定用戶是否贏得獎金
- 題目
- 題目概述
- 破題
- 代碼
題目
題目概述
**3.15(游戲:彩票)修改程序清單3-8,產生三位整數的彩票。程序提示用戶輸入一個三位整數,然后依照以下規則判定用戶是否贏得獎金:
(1)如果用戶輸入的所有數包括順序完全匹配彩票數字,獎金是10 000美元
(2)如果用戶輸入的所有數匹配彩票的所有數字(順序不匹配),獎金3000美元
(3)如果用戶輸入的其中一個數匹配彩票號碼中的一個數,獎金是1000美元
破題
隨機生成一個三位整數,(int)(Math.random()*1000)
獲取用戶輸入一個三位整數(隱藏對范圍的判斷)
(1)整體匹配
(2)排序后匹配
(3)此時已從小到大完成排序,最小到最大
代碼
import java.util.Arrays; import java.util.Scanner;public class Test3_15 {public static void main(String[] args) {// 隨機生成一個三位整數,提取每位數值int a0 = (int)(Math.random()*1000);int a1 = a0 / 100;int a2 = (a0 % 100) / 10;int a3 = a0 % 10;// 獲取用戶輸入一個整數Scanner input = new Scanner(System.in);System.out.println("請輸入一個三位整數");int b0 = input.nextInt();if(b0 < 0 || b0 >= 1000){System.out.println("輸入數據不合法");System.exit(0);}int b1 = b0 / 100;int b2 = (b0 % 100) / 10;int b3 = b0 % 10;// 判斷兩者整體是否相等if(a0 == b0){System.out.println("完全匹配,獎金10000");}// 是否所有數匹配:排序// 三位數遵循相同方法進行排序,排序后進行比較// 本例按照從小到大排序int temp = 0;if(a1 > a2){temp = a2;a2 = a1;a1 = temp;}if(a1 > a3){temp = a3;a3 = a1;a1 = temp;}if(a2 > a3){temp = a3;a3 = a2;a2 = temp;}if(b1 > b2){temp = b2;b2 = b1;b1 = temp;}if(b1 > b3){temp = b3;b3 = b1;b1 = temp;}if(b2 > b3){temp = b3;b3 = b2;b2 = temp;}if(a1 == b1 && a2 == b2 && a3 == b3){System.out.println("所有數字匹配,獎金3000");}// 判斷是否有一位匹配:這是這個題目中最難的// 在這里我不講一下武德,用后續的數組來做這道題int[] array = {a1, a2, a3, b1, b2, b3};Arrays.sort(array);for(int i = 0;i < 5;i++){if(array[i] == array[i+1]){System.out.println("有1對數字匹配,獎金1000");}}} }總結
以上是生活随笔為你收集整理的Java黑皮书课后题第3章:**3.15(游戏:彩票)修改程序清单3-8,产生三位整数的彩票。程序提示用户输入一个三位整数,然后依照规则判定用户是否赢得奖金的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java黑皮书课后题第3章:3.14(游
- 下一篇: Java黑皮书课后题第3章:3.16(随