作业帮 > 综合 > 作业

用C完成一道基础算法题

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/11 22:49:55
用C完成一道基础算法题

因为是刚刚才算接触算法,希望代码可以增加适量注释,3Q、
我要是想通了并且可以AC过 就采纳了……
用C完成一道基础算法题
 
#include<stdio.h>
void main()
{  int maxdis,stcount,k,t,j=0,f=0;     //maxdis最大行驶距离 stcount 加油站个数 f为标志
   int dis[1000]={0},ndis[1000]={0}; //dis数组存放每个车站间距离 ndis数组存放每次加油行驶距离
   scanf("%d%d",&maxdis,&stcount);
   for(k=0;k<=stcount;k++)
    scanf("%d",&dis[k]);
   for(k=0;k<=stcount;k++)            //检查是否有不能达到的车站
    if(maxdis<dis[k])
    { printf("No Solution!\n"); f=1;break;}
  if(!f)
  {
      for(k=0,t=0;k<=stcount;k++)
          { t+=dis[k];               //将行驶距离组合到ndis中
               if(t>maxdis)
      { t-=dis[k];
            ndis[j++]=t;
              t=dis[k];
      }
           }     
   
      for(k=0;;k++)                   //统计加油次数
      if(!ndis[k])  break;
      printf("n=%d\n",k);
  
  }     
}
再问: 提交的时候 是显示timelimitedexception 即 超时了 运算效率不够高 你觉得应该怎么优化这个程序呢 我基本看懂了你的代码 我也在尝试优化, 你有时间也帮我下吧。
再答: 把最后的循环求个数的那个去掉,直接输出j的值
再问: 显示WRONG ANSWER了……  给你看下我提交的代码
再问: 不知道啊 系统 和我说错了 你有空的话 也去试下看 http://acm.nbut.cn/Problem/view.xhtml?id=1026