题目描述:
一个特别的单行街道在每公里处有一个汽车站。顾客根据他们乘坐汽车的公里使来付费。例如下表就是一个费用的单子。 没有一辆车子行驶超过10公里,一个顾客打算行驶n公里(1< =n< =100),它可以通过无限次的换车来完成旅程。最后要求费用最少。
代码:
java
package lanqiao;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int [] m_v = new int[10];
for (int i = 0; i < m_v.length; i++) {
m_v[i] = scan.nextInt();
}
int N = scan.nextInt();
scan.close();
int[][] pg = new int [10][N+1];
for (int i = 0; i < pg[0].length; i++) {
pg[0][i] = i*m_v[0];
}
for (int i = 1; i < pg.length; i++) {
for (int j = 0; j < pg[i].length; j++) {
if(i+1<=j) {
pg[i][j] =Math.min(pg[i][j-i-1] + m_v[i], pg[i-1][j]);
}else {
pg[i][j] = pg[i-1][j];
}
}
}
System.out.println(pg[9][N]);
}
}