Math.random()方法
随机生成[0.0,1.0]之间的double类型的数字
公式
生成范围在[a,b]之间的随机整数的公式:(int)(Math.random() * (b-a+1) + a)
例题
随机生成两位数的彩票中奖号码,用户输入一个两位数,(1)与中奖号码一致奖励10000美元;(2)数字与中奖号码相同但顺序不一致奖励3000美元;(3)只有一个数字与中奖号码相同且位置一致奖励1000美元;(4)只有一位数字与中奖号码相同但位置不一致奖励500美元;(5)其他情况彩票作废。
import java.util.Scanner;
class Lottery {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int lotteryNumber = scan.nextInt();
//生成范围在[a,b]的随机数:(int)(Math.random() * (b-a+1) + a)
int winningNumber = (int)(Math.random() * (99-10+1) + 10);
if (lotteryNumber>99 || lotteryNumber<10){
System.out.println("彩票号码不规范");
}else{
int loSingle = lotteryNumber%10;
int loDecade = lotteryNumber/10;
int winSingle = winningNumber%10;
int winDecade = winningNumber/10;
if (lotteryNumber==winningNumber){
//完全一致
System.out.println(winningNumber);
System.out.println("奖金10000美元");
}else if (loSingle==winDecade && loDecade==winSingle){
//顺序相反
System.out.println(winningNumber);
System.out.println("奖金3000美元");
}else if (loSingle==winSingle || loDecade==winDecade){
System.out.println(winningNumber);
System.out.println("奖金1000美元");
}else if (loSingle==winDecade || loDecade==winSingle){
//非顺序情况下一个数字相等
System.out.println(winningNumber);
System.out.println("奖金500美元");
}else{
System.out.println(winningNumber);
System.out.println("无奖金,彩票作废");
}
}
}
}