空中旅行

空中旅行

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

猜你喜欢

转载自blog.csdn.net/chunfenxiaotaohua/article/details/90445577