题目描述 牛牛有羊羊有了属于他们自己的飞机。于是他们进行几次连续的飞行。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. 说完易错点就说正确的操作方式: 按照预先给出的计划飞行所需的燃油量,那么就顺序相加,与初始状态下的燃油量相比较,如果小于等于就将飞行次数加一操作(一定包含加一操作)。 完毕 !!!