在采访中,他们让我写了一个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 如何围绕我的价值观?
答案 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;