题目描述:
一个特别的单行街道在每公里处有一个汽车站。顾客根据他们乘坐汽车的公里使来付费。例如下表就是一个费用的单子。 没有一辆车子行驶超过10公里,一个顾客打算行驶n公里(1< =n< =100),它可以通过无限次的换车来完成旅程。最后要求费用最少。
代码:
- 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]);
- }
- }