额,学生大本营首页突然上不去了。害我没来得及提交我的答案。
原题目没来得及copy下来。这里大概说下吧:
有一个rand()函数,返回0~1之间的随机数。现在给出 m 和 n (m n都是实数)
请编写函数返回m 和 n之间任意的数字。不能使用其他库函数(除了这里给的假定函数rand()).
我看了下题目。觉得蛮简单的。就写了下。。。。。当我想提交的时候。首页突然就挂了。。出现
502 BAD GATEWAY错误。。。。无奈,现在只好先放在这里咯。
---------------------------------------------------------------------------------------------------------------------------------
/* language="java"
* author: weiwei
* 2010-03-28 10:23
* 说明:此处,使用命令行参数。调试时候请用Math.random()方法。
* 这里按照老师要求为假象的rand()方法代替。
我用了正则表达式来确保输入的是数字。不知道有没有违反老师的规则呢?
*/
public class RandTest
{
public static float getRandNum(float m, float n)
{
float result = 0;
if (m > n)//m为大数
{
do
{
result = (float)(m * rand());
}while (result < n);//保证结果为n m之间
}
else //n为大数
{
do
{
result = (float)(n * rand());
}while (result < m);//保证结果为m n之间
}
return result;
}
public static void main(String[] args)
{
float m = 0;
float n = 0;
if (args[0].matches("^//d+.?//d+tiny_mce_markerquot;)
&& args[1].matches("^//d+.? //d+tiny_mce_markerquot;))//使用正则表达式确保输入的是数字
{
m = Float.parseFloat(args[0]);
n = Float.parseFloat(args[1]);
}
else
{
System.out.println("错误:输入的参数不是实数!") ;
System.exit(1);
}
System.out.println(RandTest.getRandNum(m, n));
}
}