创建一系列四个数字

时间:2015-02-20 12:03:47

标签: java numbers rounding

在采访中,他们让我写了一个java程序。问题是这样的,

有一个开始和结束编号。将开始和结束之间的数字除以4个相等的部分,并打印其10秒的功率。 示例如果start = 110,end = 1234

结果是获得

300
600
900 
1000

我已经完成了一个代码将它分成4个部分,但我无法将其分成10秒的功率。 我的代码是

double start = 110;
double end = 1234;
double n = 4;
double difference = (end - start) / n;
double value = start;
while (value < end)
{
  value += difference;
  System.out.println(value);
}
ouput/

391.0 672.0 953.0 1234.0 如何围绕我的价值观?

1 个答案:

答案 0 :(得分:1)

对于每个value,使用基数10对数来获得其第10次幂。例如:

int log_10 = (int) Math.log10(value); // For 391.0, result is 2

然后,很容易:

long basePower = (long) Math.pow(10, log_10); // Yoy get 100
int result = ((int) (value/basePower)) * basePower; // You get 300

其他值相同:

1234.0 ==>
    log_10 = 3; 
    basePower = 1000; 
    (int) (1234.0/1000) = 1 ==> result = 1*1000 = 1000;