如何给我的math.random一个参数,使我总是至少接收,但不超过3位?我目前正在社区学院上我的第一节编程课,这是一个用Java编写的小型彩票项目的作业。任何帮助或更深入的解释将是非常感谢的。谢谢!
//randomly generate 3 digit lottery number
int lottery = (int)(Math.random() * 1000);
System.out.println(lottery);
int lotteryDigit1 = lottery / 100;
int lotteryDigit2 = lottery / 10 % 10;
int lotteryDigit3 = lottery % 10;
System.out.println(lotteryDigit1 + " digit 1 ");
System.out.println(lotteryDigit2 + " digit 2 ");
System.out.println(lotteryDigit3 + " digit 3 ");为了澄清我写这个程序的依据,下面是一个类似的程序,它为彩票生成"2“随机数。我的工作是修改它来创建3个随机数。
public static void main(String[] args)
{
//generate lottery number
int lottery = (int)(Math.random() * 100);
//prompt the user to enter a guess
Scanner input = new Scanner (System.in);
System.out.println("Enter your lottery pick (two digits): ");
int guess = input.nextInt();
//get digits from lottery
int lotteryDigit1 = lottery / 10;
int lotteryDigit2 = lottery % 10;
//get digits from guess
int guessDigit1 = guess / 10;
int guessDigit2 = guess % 10;
System.out.println("The lottery number is " + lottery);
//check the guess
if (guess == lottery)
System.out.println("Exact match: you win $10,000");
else if (guessDigit2 == lotteryDigit1 && guessDigit2 == lotteryDigit2)
System.out.println("Match all digits: you win $3,000");
else if (guessDigit1 == lotteryDigit1
|| guessDigit1 == lotteryDigit2
|| guessDigit2 == lotteryDigit1
||guessDigit2 == lotteryDigit2)
System.out.println("Match one digit: you win $1,000");
else
System.out.println("Sorry, no match");
}}
发布于 2015-09-13 16:51:26
使用:
int lottery = 100 + (int) (Math.random()*899);用这一行来生成至少三位数的数字,我不知道你为什么要用彩票作为所有其他随机数的基础?如果你除以100,那么肯定得到的数字将小于3位数,模10将给我0-9,而不是3位数!
发布于 2015-09-13 16:58:45
您可以为随机数编写一个具有最小和最大界的方法。这两个界限都包括在内:
private void run() {
int min = 100;
int max = 999;
int result = random(min, max);
System.out.println(result);
}
private int random(int min, int max) {
Random random = new Random();
return min + random.nextInt(max - min + 1);
}https://stackoverflow.com/questions/32552075
复制相似问题