假定你开去香格里拉。出发前油箱是满的,可以行驶D公里。路上一共有n个加油站,A[i]表示从第i-1加油站到第i个的距离。最后一个加油站在香格里拉。请设计算法帮助驾驶员选择加油站使加油的次数最少。 编写的有点问题,请师傅们指点一下。
package jiayou;
import java.io.*;
public class Jiayou {
static BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
public static void main(String [] args) throws NumberFormatException, IOException{
int number;
System.out.println("请输入加油站个数number值:");
number=Integer.parseInt(br.readLine());
int k=0; //k为加油次数,m剩余可跑公里数
int a[] = new int[number];
int p = 0;
int m = p ;
System.out.println("请输入加油站之间的距离的数组元素:");
try{
for(int i=0;i<number;i++){
a[i]=Integer.parseInt(br.readLine());
}
}
catch(Exception es){
System.out.print(es.getMessage());
}
System.out.println("请输入加满油最远可走距离p的值:");
p=Integer.parseInt(br.readLine());
// int l=0;
for(int i=0;i<number-1;i++){
// m = p - a[i];
if(p<a[i]){
System.out.println("无法到达终点");
break;
}
else {
m = m - a[i];//p为一次能行驶的距离 m为行驶了1油站剩余的距离
if(a[i+1]>m){
System.out.println("第 "+(i+1)+"站要加油!");
m = p;
k++;
// break;
}
else {
System.out.println("第"+(i+1)+"站不加油! ");
// break;
}
}
}
System.out.println("最少次数为: "+k);
}
}
package jiayou;
import java.io.*;
public class Jiayou {
static BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
public static void main(String [] args) throws NumberFormatException, IOException{
int number;
System.out.println("请输入加油站个数number值:");
number=Integer.parseInt(br.readLine());
int k=0; //k为加油次数,m剩余可跑公里数
int a[] = new int[number];
int p = 0;
int m = p ;
System.out.println("请输入加油站之间的距离的数组元素:");
try{
for(int i=0;i<number;i++){
a[i]=Integer.parseInt(br.readLine());
}
}
catch(Exception es){
System.out.print(es.getMessage());
}
System.out.println("请输入加满油最远可走距离p的值:");
p=Integer.parseInt(br.readLine());
// int l=0;
for(int i=0;i<number-1;i++){
// m = p - a[i];
if(p<a[i]){
System.out.println("无法到达终点");
break;
}
else {
m = m - a[i];//p为一次能行驶的距离 m为行驶了1油站剩余的距离
if(a[i+1]>m){
System.out.println("第 "+(i+1)+"站要加油!");
m = p;
k++;
// break;
}
else {
System.out.println("第"+(i+1)+"站不加油! ");
// break;
}
}
}
System.out.println("最少次数为: "+k);
}
}