在表格中插值

时间:2019-07-09 06:27:02

标签: java interpolation

以下是我要在其中插入值的表格

+---+----+----+----+----+ . . . .
|   | 20 | 30 | 40 | 50 | . . . .
+---+----+----+----+----+ . . . .
|100| 78 | 89 | 92 | 95 | . . . .
+---+----+----+----+----+ . . . .
|200| 62 | 76 | 88 | 91 | . . . .
+---+----+----+----+----+ . . . .
|300| 59 | 68 | 74 | 83 | . . . .
+---+----+----+----+----+ . . . .
|400| 48 | 50 | 65 | 72 | . . . .
+---+----+----+----+----+ . . . .

用户输入速度和温度值。

我知道如何从数学上做到这一点,但是把它带到Java上却令我很沮丧。

因此,如果用户输入的速度为200(没有250,则为200或300),温度为34(仅输入整数) 数学上我会这样做;

+---+----+----+----+----+ . . . .
|   |    | 30 | 34  | 40 | . . . . 
+---+----+----+----+----+ . . . .
|200|    | 76 |  x  | 88 | . . . . 
+---+----+----+----+----+ . . . .


(76 - 88) /10 = 1.2
1.2 * (34-30) = 4.8
4.8 + 76 = 80.8 = x

我们应该得到80.8的答案

编辑我不是一个懒惰的人,他希望你们像某些人的想法一样为我完成所有工作。我不仅在这里发布我的问题,并期待一个完整的代码!正如我在上面提到的那样,我只想问有关如何解决此问题的任何想法。谢谢!

1 个答案:

答案 0 :(得分:1)

使用2D数组存储表。使用Scanner读取用户输入。根据输入计算行索引和列索引。从二维数组中获取相应的数字,然后进行计算。

    int[][] table = {
        {78,89,92,95},
        {62,76,88,91},
        {59,68,74,83},
        {48,50,65,72}
    };

    Scanner scanner = new Scanner(System.in);
    System.out.println("Enter speed:");
    int speed = scanner.nextInt();
    System.out.println("Enter temperature:");
    int temp = scanner.nextInt();
    int row = (speed / 100) - 1;
    int col = (temp / 10)  - 2;
    float a = table[row][col];
    float b = table[row][col + 1];
    float result = a + (temp % 10) * (b - a) / 10;
    System.out.println(result);