动手动脑问题2

一.请看以下代码,你发现有什么特殊之处吗?

这段程序调用了两个函数,函数数据类型不同,属于函数重载的方法。

二。编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数。

     

import java.util.*;
public class Suijishu

{

public static void main(String[] args)

{

Scanner in = new Scanner(System.in);

  int a = (int)Math.pow(7,5);
  int m = (int)Math.pow(2, 31) - 1;
  int c = 0;
System.out.print("请输入要产生随机数的个数:");
  int n = in.nextInt();
  for(int i = 0;i<n;i++)
{
  Random x1 = new Random();
  int x3 = x1.nextInt(10);
  int x2 = (a* x3+c)%m;
  System.out.println(x2);
}
}

}

结果截图:

 

三。为什么阶乘数会出现负数.

由于计算机使用固定的位数来保存数值,因此,能处理的数值大小是有限的,当要处理的数值超过了这一范围时,计算机将会自动截断数值的二进制表示为它所能处理的最多位数,所以会出现负数。

posted on 2017-10-14 01:05  面向bug的程序设计  阅读(103)  评论(0编辑  收藏  举报