首页 > 试题广场 >

空中旅行

[编程题]空中旅行
  • 热度指数:10536 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
牛牛有羊羊有了属于他们自己的飞机。于是他们进行几次连续的飞行。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
JAVA 
在循环中总的燃料量按顺序减去每一次飞行所需要的燃料量,直到循环结束  (循环结束的条件是 燃料量不能小于零,飞行次数不能大于n
import java.util.*;
public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner cin=new Scanner (System.in);
		int n=cin.nextInt();//计划飞行的次数
		int s=cin.nextInt();//起初始状态下有的燃油量
		int sum=0;
	    
		while (s>=0 && n>0) {
			s=s-cin.nextInt();
			if(s>=0)sum++;
            n--;
			
		}
		System.out.print(sum);
		

	}

}


发表于 2019-11-05 17:47:46 回复(0)
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] f = new int[n];
        int s = sc.nextInt();
        int i;
        for (i = 0; i < n; i++) {
            f[i] = sc.nextInt();
        }
        i = 0;
        while (s >= 0 && i < n) {
            s -= f[i++];
        }
        if (i == n) {
            System.out.println(i);
        } else {
            System.out.println(i - 1);
        }
    }
}
发表于 2019-06-14 21:35:28 回复(0)

爱奇艺的校招编程题也太简单了8!!!

private static int solution(int[] arr, int s) {
    int res = 0;
    int idx = 0;

    while (idx < arr.length && s >= arr[idx]) {
        s -= arr[idx];
        idx++;
        res++;
    }

    return res;
}
发表于 2019-05-17 10:14:21 回复(0)

import java.util.*;
public class Main{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int s = input.nextInt();
int a[] = new int[n];
for(int i = 0;i < n;i++){
a[i] = input.nextInt();
}
int times = 0,total =0;
while(times< n){

total = total+a[times];
        if(total <= s){
            times++;
        } 
        else
            break;
    } 
    System.out.println(times);
}

}

发表于 2019-03-19 17:10:09 回复(0)

这连着三道题都好简单,看看哪家公司的

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner in=new Scanner(System.in);
        int n=in.nextInt();
        int s=in.nextInt();
        int[] f=new int[n];
        for(int i=0;i<n;i++)
            f[i]=in.nextInt();
        int now=f[0];
        int count=0;
        int i=0;
        while(s>=now){
            count++;
            s-=f[i];
            i++;
            if(i<n)
                now=f[i];
            else
                break;
        }
        System.out.println(count);    
    }
}
发表于 2019-03-10 23:22:13 回复(0)
import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        try(Scanner in = new Scanner(System.in)){
            int n = in.nextInt(),s = in.nextInt(),i = 0;
            int[] a = new int[n];
            while(i < n){
                a[i] = in.nextInt();
                i++;
            }
            System.out.println(helper(a,s));
        }
    }
    public static int helper(int[] a,int s){
        int sum = 0;
        for(int i = 0;i < a.length;i++){
            sum += a[i];
            if(sum > s) return i;
        }
        return a.length;
    }
}


发表于 2019-01-15 21:46:58 回复(0)