网易果子分堆问题

2018-08-27  本文已影响0人  培根好吃
package com.ryan.sworg.java;

import java.util.Scanner;

public class Guozi {

    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int duiNum;
        //int chaNum;
        int x=0;
        /*int y=0;
        int z=0;*/
        int[] arr=null;
        while(!sc.hasNext("0")) {
             duiNum = sc.nextInt();
             arr=new int[duiNum];
            for(int i=0;i<duiNum;i++) {
            arr[i]=sc.nextInt();}
            //chaNum=sc.nextInt();
            
            //for(int j=0;j<chaNum;j++) {
                x=sc.nextInt();
                /*y=sc.nextInt();
                z=sc.nextInt();     */  
        }
        sc.close();
        int start=0;
        int end=arr.length-1;
        int sum;
        
        while(start<end) {
            int mid=(start+end)/2;
            sum=sum1(arr, mid);
            if(sum>x) {
                end=mid;
            }else if(sum<x){
                start=mid+1;
            }else {
                start=mid;
            }
            
        }
        
        System.out.println(start);
    /*  System.out.println(find(arr,x));
        System.out.println(find(arr,y));
        System.out.println(find(arr,z));*/
    }
    /*public static int find(int[] arr,int q) {
        int start=0;
        int end=arr.length-1;
        int sum;
        
        while(start<end) {
            int mid=(start+end)/2;
            sum=sum(arr, mid);
            if(sum>q) {
                end=mid;
            }else if(sum<q){
                start=mid+1;
            }else {
                return mid;
            }
            
        }
        
        return start;
    }*/
    public static int sum1(int[] arr,int x) {
        int sum=0;
        for(int i=0;i<x+1;i++) {
             sum=arr[i]+sum;
        }
        return sum;
    }
}

上一篇 下一篇

猜你喜欢

热点阅读