上次去面试,这两题不会~~~
-_-!
发过来给大家也看看1.牛在草场吃草,而且草每天都会长.如果是27头牛,6天会把草吃完;如果是23头牛,9天会把草吃完;请问如果是21头牛几天会把草吃完?2.某商人利用一头驴要把3000个萝卜从A地运到B地去卖.AB相距1000公里.驴每走一公里要吃一个萝卜,且一次只能拉1000个萝卜.请问最后商人在B地还有多少个萝卜可以卖?

解决方案 »

  1.   

    第一题,设一头牛每天吃草x吨,草场每天长草y吨,一开始有草z吨,列方程:
    z=6*(27*x+y)
    z=9*(23*x+y)
    得到y=15x
    设21头牛要t天
    t*(21*x+y)=z
    带进上面2个方程去
    t=7
      

  2.   

    ... 怎么会是负的,虽然我的想法估计也不对,但最起码结果是正的首先走250公里,运1000个萝卜,回到A点,再运1000个萝卜到250公里处,再回到A点,运最后1000个萝卜到250公里处,这样3次后250公里处还有萝卜1750个,接着,再走250公里,运750个萝卜,回来,500公里处留下250个萝卜,再运剩下的1000个萝卜,到了500公里处,路上吃了250个萝卜,所以500公里处总共还有1000个萝卜,完后直接全部运动B点,还剩下500个萝卜
      

  3.   

    我算的最后可以剩533个。    200M      533M   1000M
    -----A--------B-------终点
       2000个    1000个     533个1、每次都让驴驮1000个,到A点放下600,带200在回来的路上吃。来回5次,吃掉1000个,剩下2000个。
    2、从A到B,333.33M。每次驮1000个,来回三次,吃掉1000个。剩1000个。
    3、从B至终点,最后剩533个。不知道还有没有剩的多的?
      

  4.   


    bigbug9002 很不错了!很懂行呀!知识面很广呀!顶你一下!
      

  5.   

    老题了,534是正解,具体思路baidu google一下就好了
    问题是商人放心把自己的萝卜随便放在一个xx公里处吗,等下次再去时恐怕早就被河蟹掉了吧。
    何况这驴这么麻烦,走一公里还要吃个萝卜,我是商人的话直接租个车什么的将驴和萝卜一起运过去得了,又快又方便。
      

  6.   

    我感觉这道题可以转化为最后一段路骆驼要背上1000个萝卜,而且之前吃掉的2000个萝卜要保证走最远的路程,这样剩下的萝卜就是最多的.走两段的话:202 532
    走三段的话:1  250  500
    #include <iostream>
    using namespace std;void PrintTwo()
    {
    int nDist1(0),nDist2(0); for ( int i = 0;i <= 1000;i++  )
    {
    for ( int j = i;j <= 1000-i;j++ )
    {
    int nFirst = 5*i;
    int nCount = (3000-nFirst)/1000;
    int nSecond = (j-i)*(2*(1+nCount)-1); if ( nFirst+nSecond==2000 )
    {
    if ( j > nDist2 )
    {
    nDist1 = i;
    nDist2 = j;
    }
    }
    }
    }
    cout<<nDist1<<" "<<nDist2<<"\n";
    }void PrintThree()
    {
    int nDist1(0),nDist2(0),nDist3(0); for ( int i = 0;i <= 1000;i++  )
    {
    for ( int j = i;j <= 1000-i;j++ )
    {
    for ( int k = j;k <= 1000 -k;k++ )
    {
    int nFirst = 5*i;
    int nCount = (3000-nFirst)/1000;
    int nSecond = (j-i)*(2*(1+nCount)-1); nCount = (3000-nSecond)/1000;
    int nThird = (k-j)*(2*(1+nCount)-1); if ( nFirst+nSecond+nThird==2000 )
    {
    if ( k > nDist3 )
    {
    nDist1 = i;
    nDist2 = j;
    nDist3 = k;
    }
    }
    }
    }
    }
    cout<<nDist1<<" "<<nDist2<<" "<<nDist3<<"\n";
    }void main()
    {
    PrintTwo();
    PrintThree();
    }