rand产生[0-1)
所以应该填61

解决方案 »

  1.   

    60是对的Math.random() * 60 会产生0-59这60个数字小于5的有0-4五个数,概率为5/60
    .....
      

  2.   

    你这个代码是包含在题目里面的么?
    public static void main(String[] args)  
    {
    int i= (int) (Math.random()*60);
    if (i < 5) {
    System.out.println("恭喜中了:iphone手机");
    }else if (i < 17) {
    System.out.println("恭喜中了:mp3");
    } else if (i < 47) {
    System.out.println("恭喜中了:洗衣粉");
    } else {
    System.out.println("恭喜中了:KFC优惠券");
    }
    }
    要是换成这样,就基本上可以了
      

  3.   

     random()返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。
    在你那个题目里面可能由于前面的转换类型的优先级要高,先转换类型再乘的,会有错误
      

  4.   

    这是个陷阱··看看前面已经转成(int)了·也就是0了·所以应该填
    0+(int)(Math.random()*60)其中最前面的0可以是任意数,因为题目给出来到(int) Math.random() * 本身已经是0了,明白?
      

  5.   

    本人也觉得前面(int) Math.random() 就已经是0了,后面无论与什么相乘都无用,如果是
    (int) (Math.random() *61)应该可以