das

来源:互联网 发布:上海奥特莱斯淘宝真假 编辑:程序博客网 时间:2024/06/06 12:53

dasdasd


#include "stdio.h"
#include "stdlib.h"


struct ReturnType
{
  int nTargetFloor, nMinFloor;
};










ReturnType elevators1(int* nPerson,int N)
{
    ReturnType result;
    int nFloor,nMinFloor,nTargetFloor;
    nTargetFloor = -1;
    nMinFloor = -1;


    for(int i = 1;i <= N; i++)
    {
      nFloor = 0;
      for(int j = 1; j<= N; j++)
      {
        nFloor += nPerson[j-1]*abs(j-i);
      }


      printf("%d,%d\n",i,nFloor );
      if(nTargetFloor == -1 || nMinFloor > nFloor)
      {
        nTargetFloor = i;
        nMinFloor = nFloor;
      }
    }


    result.nTargetFloor = nTargetFloor;
    result.nMinFloor = nMinFloor;
    return result;
}


ReturnType elevators2(int* nPerson,int N)
{
  ReturnType result;
  int nMinFloor=0,nTargetFloor=-1;
  int N1=0,N2=nPerson[0],N3=0;


  for(int i=2;i<=N;i++)
  {
    N3 += nPerson[i-1];//注意索引是从0开始的
    nMinFloor += nPerson[i-1]*(i-1);
  }


  for(int i=2;i<=N;i++)
  {
    if(N1+N2<N3)
    {
      nMinFloor += (N1 + N2 -N3 );
      nTargetFloor = i;
      N1 = N1+N2;
      N2 = nPerson[i-1];
      N3 = N3 - nPerson[i-1];
    }
    else
      break;
  }
  result.nTargetFloor = nTargetFloor;
  result.nMinFloor = nMinFloor;
  return result;
}






int main()
{
    int nPerson[10] = {2,2,2,2,2,0,0,0,0,0};
    int N = 10;
    ReturnType result1 = elevators2(nPerson,N);


    printf("elevators%d,%d\n",result1.nTargetFloor,result1.nMinFloor);




}

#include "stdio.h"#include "stdlib.h"struct ReturnType{  int nTargetFloor, nMinFloor;};ReturnType elevators1(int* nPerson,int N){    ReturnType result;    int nFloor,nMinFloor,nTargetFloor;    nTargetFloor = -1;    nMinFloor = -1;    for(int i = 1;i <= N; i++)    {      nFloor = 0;      for(int j = 1; j<= N; j++)      {        nFloor += nPerson[j-1]*abs(j-i);      }      printf("%d,%d\n",i,nFloor );      if(nTargetFloor == -1 || nMinFloor > nFloor)      {        nTargetFloor = i;        nMinFloor = nFloor;      }    }    result.nTargetFloor = nTargetFloor;    result.nMinFloor = nMinFloor;    return result;}ReturnType elevators2(int* nPerson,int N){  ReturnType result;  int nMinFloor=0,nTargetFloor=-1;  int N1=0,N2=nPerson[0],N3=0;  for(int i=2;i<=N;i++)  {    N3 += nPerson[i-1];//注意索引是从0开始的    nMinFloor += nPerson[i-1]*(i-1);  }  for(int i=2;i<=N;i++)  {    if(N1+N2<N3)    {      nMinFloor += (N1 + N2 -N3 );      nTargetFloor = i;      N1 = N1+N2;      N2 = nPerson[i-1];      N3 = N3 - nPerson[i-1];    }    else      break;  }  result.nTargetFloor = nTargetFloor;  result.nMinFloor = nMinFloor;  return result;}int main(){    int nPerson[10] = {2,2,2,2,2,0,0,0,0,0};    int N = 10;    ReturnType result1 = elevators2(nPerson,N);    printf("elevators%d,%d\n",result1.nTargetFloor,result1.nMinFloor);}


0 0
原创粉丝点击