如何获得第一个数字和最后一个数字相差超过一个的随机数?

问题描述 投票:0回答:1

我需要生成一个随机的三位数,其中第一位数字和第三位数字相差不止一个。我如何尽可能简单地完成这个没有数组?我还是一个初学者。非常感谢。

int num = 0;
        int firstDigit = 0;
        int lastDigit = 0;
        
        

        // complete the method
            //while loop
            while(firstDigit-lastDigit<1)
            {
                num = (int)(Math.random() * (999-100) + 100);
                String number = String.valueOf(num);
                String n1 = number.substring(0,1);
                String n2 = number.substring(2,3);
                int a = Integer.parseInt(n1);
                int b = Integer.parseInt(n2);
                
                firstDigit = a;
                lastDigit = b;
                int randNum = Math.abs(a-b);
                System.out.println(a);
                System.out.println(b);
                
                
            }

我一开始尝试了这个,但很快意识到 while 循环始终处于活动状态,因为它从方法中先前定义的初始值中获取初始值。

java computer-science
1个回答
0
投票
Random random = new Random();

int first = random.nextInt(1, 10);
int last = random.nextInt(1, 10);
if (last == first) {
    last = 0;
}
int middle = random.nextInt(0, 10);
System.out.println(first * 100 + middle * 10 + last);

我认为这个变体对于初学者来说是最简单的。它不使用数组、流和循环

© www.soinside.com 2019 - 2024. All rights reserved.