有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java创建四个数字的序列

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

有一个开始和结束的数字。将开始和结束之间的数字除以4等分,并打印其10的幂。 示例:如果开始=110,结束=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 953 1234 如何使我的价值观圆滑


共 (1) 个答案

  1. # 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;