某电站24小时需要员工站岗,已知每个员工能够持续工作8个小时,而电站某一时段需要最少的员工数目如下:0-4 :5人。
4-8 :10人。
8-12 :7人。
12-16 :6人。
16-20 :8人。
20-24 :4人。求该电站应如何安排才能使一天内所派员工人数最少?

解决方案 »

  1.   

    package JavaSeTestExp;import java.io.IOException;
    public class expcsdn {
    public static void main(String args[])throws IOException{
    int time[]=new int[6];
    time[0]=4;
    int people[]=new int[6];
    people[0]=5;
    for(int i=1;i<6;i++){
    time[i]=time[i-1]+4;
    if(time[i]>0&&time[i]<=4){
    //people[0]=5;
    }
    else if(time[i]>4&&time[i]<=8){
    people[i]=10-people[i-1];
    }
    else if(time[i]>8&&time[i]<=12){
    people[i]=7-people[i-1];
    }
    else if(time[i]>12&&time[i]<=16){
    people[i]=6-people[i-1];
    }
    else if(time[i]>16&&time[i]<=20){
    people[i]=8-people[i-1];
    }
    else if(time[i]>20&&time[i]<=24){
    people[i]=4-people[i-1];
    }

    }

    System.out.println(people[0]+people[1]+people[2]+people[3]+people[4]+people[5]);

    }
    }
      

  2.   

    如果每人每天只工作8小时的话则需要20人。算法如下:
    A[6]存放规定站岗人数5,10,7,6,8,4,A从1开始。
    令f(i)表示i*4到i*4+4时间段需要增加的人数,g(i)表示在上一时间段工作且能继续工作的人数
    则有f(i+1)=A[i+1]+g(i),因为工人可以连续工作两个时间段,则有f(i)=g(i)
    所以f(i+1)=A[i+1]-f(i),f(1)=5,把A[i]这个代入,可得5,5,2,4,4,0.
    所以需要20个人。
      

  3.   

    是f(i+1)=A[i+1]-g(i)
    打错了。。
      

  4.   

    我是新手啊~~刚自学了十多天,试做一做,写得不好的地方大家不要介意啊~~~
    class diaodu
    {
    public static void main(String [] args)
    {
    int[] arr={5,10,7,6,8,4};
    haha.diao(arr);
    }
    }
    class haha
    {
    public static void diao(int[] arr)
    {
    int sum=0;int ren=0,y=0;
    for(int x=0;x<24 && y<arr.length;x=x+4)
    {
    ren=arr[y++]-ren;
    sum+=ren;
    System.out.println(x+"-"+(x+4)+"时段需要增加"+ren);
    }
    System.out.println("一天总共需要"+sum+"人");
    }
    }