第1个回答 2013-11-09
public class test {
public static void main(String[] args) {
int x = 1;
int b = x == 1 ? 0 : (int)Math.pow(10, x-1);
int f = (b == 0 ? 1 : b)*10 - b;
for(int i = 0; i < 100; ++i)
System.out.print(b + (int)(Math.random() * f) + " ");
}
}
算出来的b是基数,f是要乘的数,比如2位数,b = 10,f = 90,(int)Math.random()*n返回0~n-1之间的数,所以乘完之后返回的是0~89,加上10就是10~99了,由于算b和f对于1位的情况有点特殊,10^0 != 0而是1,所以被单独分开处理。
第2个回答 2013-11-09
int i=(int)Math.round(Math.random()*9)这样算出来的是1位0至9的随机数,你要固定几位就做几个循环
第3个回答 2013-11-09
int i=pow(10,x-1)+(int)Math.round(Math.random()*pow(10,x-1)*9);