空中旅行
题目描述
牛牛有羊羊有了属于他们自己的飞机。于是他们进行几次连续的飞行。f[i]表示第i次飞行所需的燃油的升数。飞行只能按照f数组所描述的顺序进行。
起初飞机里有s升燃油,为了正常飞行,每次飞行前飞机内燃油量应大于等于此处飞行所需要的燃油量。请帮助他们计算在不进行加油的情况下他们能进行的飞行次数。
输入描述:
输入包括两行,第一行包括两个整数n和s(1 ≤ n ≤ 50, 1 ≤ s ≤ 1000),分别表示计划飞行的次数和飞起初始状态下有的燃油量。
第二行包括n个整数f[i], (1 ≤ f[i] ≤ 1000), 表示每次计划飞行所需要的燃油量。
输出描述:
输出一个整数,表示他们能进行的飞行次数。
示例1
输入
7 10
1 2 3 4 5 6 7
输出
4
上代码:
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int s=sc.nextInt();
int flag=0;
int [] f=new int[n];
for(int i=0;i<n;i++)
{
f[i]=sc.nextInt();
}
int sum=0;
for(int i=0;i<f.length;i++)
{
sum+=f[i];
if(sum<=s)
{
flag++;
}
else
break;
}
System.out.println(flag);
}
}
说明如下:
1. 本题看是简单但是却暗含顺序,笔者刚开始以为我们只需要计算出最大的次数就行,所以先对计划燃油排序,然后再按照顺序计算所需要得最大的飞行次数;
2. 说完易错点就说正确的操作方式:
按照预先给出的计划飞行所需的燃油量,那么就顺序相加,与初始状态下的燃油量相比较,如果小于等于就将飞行次数加一操作(一定包含加一操作)。
完毕 !!!