• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            力為的技術(shù)博客

            聯(lián)系 聚合 管理
              154 Posts :: 1 Stories :: 561 Comments :: 0 Trackbacks
            近日老吳把他讀小學(xué)的兒子的一道題拿給幾個(gè)兄弟做,推來(lái)推去煞是麻煩。無(wú)奈用程序暴力破解之。

            話說(shuō)有五個(gè)小矮人上山摘野果,摘回來(lái)后平均分,可是怎么也分不下去.因?yàn)榉植黄骄?到了晚上,一個(gè)小矮人爬起來(lái),從里面扔了一個(gè),剛好能平均分成五份.然后他把自己的那份藏起來(lái),就睡覺(jué)去了.第二個(gè)小矮個(gè)也爬了起來(lái),也把果子扔了一個(gè)后剛好分成5份,他也把自己那份藏了起來(lái).然后睡覺(jué),余下3 個(gè)小矮人都是這樣做的,過(guò)程完全一樣. 請(qǐng)問(wèn),最初這堆果子至少有多少個(gè)?

             

            #include <iostream>

            #define BOY_COUNT (5)

            bool gotByOneBoy(int& nTotal)
            {
               
            --nTotal; // throw one
               if(nTotal%5 != 0)
                  
            return false;

               nTotal 
            -= nTotal/5// hide his
               
               
            return true;
            }


            int _tmain(int argc, _TCHAR* argv[])
            {

               
            int n = 100;
               
            for(; n<10000++n)
               
            {

                  
            bool bFind = true;
                  
            int nCur = n;
                  std::cout 
            << nCur << std::endl;

                  
            for(int nBoy=1; nBoy<=BOY_COUNT; ++nBoy)
                  
            {
                     bFind 
            = bFind && gotByOneBoy(nCur);
                  }



                  
            if(bFind)
                  
            {
                     std::cout 
            <<  "This is the result: " << n << std::endl;
                     
            break;
                  }

               }


               
            char ch;
               std::cin 
            >> ch;
                
            return 0;
            }
            posted on 2007-06-25 18:07 力為 閱讀(2896) 評(píng)論(15)  編輯 收藏 引用 所屬分類: Tools

            評(píng)論

            # re: 五個(gè)小矮人分桃子-一道小學(xué)生的作業(yè)題目 2007-06-25 20:35 小不點(diǎn)
            不是吧,C語(yǔ)言課程里有相同的題目!

            <---
            題目:海灘上有一堆桃子,五只猴子來(lái)分。第一只猴子把這堆桃子憑據(jù)分為五份,多了一個(gè),這只
               猴子把多的一個(gè)扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了
               一個(gè),它同樣把多的一個(gè)扔入海中,拿走了一份,第三、第四、第五只猴子都是這樣做的,
               問(wèn)海灘上原來(lái)最少有多少個(gè)桃子?
            --->

              回復(fù)  更多評(píng)論
              

            # re: 五個(gè)小矮人分桃子-一道小學(xué)生的作業(yè)題目 2007-06-25 21:08 xlander
            倒著推啊。
            題目問(wèn)的是:最少有多少個(gè)?
              回復(fù)  更多評(píng)論
              

            # re: 五個(gè)小矮人分桃子-一道小學(xué)生的作業(yè)題目 2007-06-25 21:09 小不點(diǎn)
            我不知道 我的方法對(duì)嗎?自己當(dāng)時(shí)做的.
            順便幫我修改下好了,呵呵,謝謝!
            #include <iostream>
            using namespace std;

            int main()
            {
            int total = 0;
            int i = 0;

            for(total = 1 ; total < 10000; total++)
            {
            for(; i < 5; i++)
            {
            if((total - 1) % 5 == 0)
            {
            total = (total-1)/5;
            }
            else
            {
            break;
            }
            }

            if(i == 5)
            {
            for(i = 0; i < 5; i++)
            {
            total = total * 5+1;
            }
            cout << "The least total is : " << total << endl;
            break;
            }
            }

            return 0;
            }  回復(fù)  更多評(píng)論
              

            # re: 五個(gè)小矮人分桃子-一道小學(xué)生的作業(yè)題目 2007-06-25 22:57 力為
            結(jié)果是 3121 就對(duì)了 :)  回復(fù)  更多評(píng)論
              

            # re: 五個(gè)小矮人分桃子-一道小學(xué)生的作業(yè)題目 2007-06-26 09:26 Rocky
            總數(shù)=5*5*5*5*5 * x + 5*5*5*5 + 5*5*5 + 5*5 + 5 + 1
            當(dāng)x取1時(shí)總數(shù)最小,即3906個(gè)。  回復(fù)  更多評(píng)論
              

            # re: 五個(gè)小矮人分桃子-一道小學(xué)生的作業(yè)題目 2007-06-26 12:16 閑耘
            see http://blog.xianyun.org/2007/06/cpp-5.html

            int getTotal(){
            int total = 1; // 設(shè)初始野果總數(shù)1個(gè)
            while (true){
            int _t = total;
            for (int i = 1; i <= 5; i++){
            if ((_t - 1) % 5 == 0){ // 條件:扔掉1個(gè)能夠5等分
            _t = (_t - 1) / 5 * 4; // 第i個(gè)矮人拿走1/5后剩下的繼續(xù)循環(huán)
            if (i == 5){ // 如果5個(gè)矮人都拿到野果
            return total;
            }
            }
            }
            total ++; // 不滿足則野果總數(shù)加1
            }
            }

            輸出:3121  回復(fù)  更多評(píng)論
              

            # re: 五個(gè)小矮人分桃子-一道小學(xué)生的作業(yè)題目 2007-07-01 17:45 s
            5+1
            30+1
            155+1
            780+1
            3905+1
            3906

              回復(fù)  更多評(píng)論
              

            # re: 五個(gè)小矮人分桃子-一道小學(xué)生的作業(yè)題目 2007-08-21 17:39 van
            30個(gè)藏起來(lái)一份就是24,扔掉一個(gè)怎么會(huì)可以分成5份呢..  回復(fù)  更多評(píng)論
              

            # re: 五個(gè)小矮人分桃子-一道小學(xué)生的作業(yè)題目 2007-09-03 16:56 haha
            怎么會(huì)這樣的答案 我感覺(jué)不對(duì)啊 不就是逆推嗎?

            //4 3 2 1 0
            #define M 5
            #define N 1
            int main(void)
            {

            int i ;
            int sum=N;
            for(i=0;i<M ; i++)
            {
            sum = sum*5 +1;
            }
            cout<<sum<<endl;

            return 0;
            }
            3906個(gè)??。?nbsp; 回復(fù)  更多評(píng)論
              

            # re: 五個(gè)小矮人分桃子-一道小學(xué)生的作業(yè)題目 2007-10-08 00:22 biogerm
            T = 5(5(5(5(5n+1)+1)+1)+1)+1

            n = 1

            T = 3906  回復(fù)  更多評(píng)論
              

            # re: 五個(gè)小矮人分桃子-一道小學(xué)生的作業(yè)題目 2007-10-08 10:06 Icat
            寫了兩個(gè)湊熱鬧,第一個(gè)把For做的事情手動(dòng)換算了
            第二個(gè)假裝可以自定義數(shù)量,其實(shí)馬上就溢出........
            1.
            #include <iostream>
            using namespace std;
            int main()
            {
            unsigned long x=0;//總數(shù)為X*5+1
            while((((x*5+1)*256-2101))%(5*625))
            {
            x+=1;
            }
            cout<<x*5+1<<endl;
            }
            2.
            #include <iostream>
            using namespace std;
            int main()
            {
            unsigned long lTotal=1;
            unsigned long x=1;
            int iMonkey=5;
            //cin>>iMonkey;
            bool bOK=false;
            do
            {
            lTotal=x*iMonkey+1;
            for(int i=1;i<iMonkey;++i)
            {
            lTotal=(lTotal+1)*(iMonkey)/(iMonkey-1);
            if((lTotal-1)%(iMonkey))
            break;
            else
            if(i==(iMonkey-1))bOK=true;
            }
            ++x;

            }while(!bOK);
            cout<<y<<endl;
            }

            3121

            樓上幾位的3906,思路差不多,但留下的是4/5~
              回復(fù)  更多評(píng)論
              

            # re: 五個(gè)小矮人分桃子-一道小學(xué)生的作業(yè)題目 2007-10-08 21:04 Bill Gates
            沒(méi)有想到這個(gè)小題可以蓋到如此高的樓~~  回復(fù)  更多評(píng)論
              

            # re: 五個(gè)小矮人分桃子-一道小學(xué)生的作業(yè)題目 2010-04-08 21:55 看看哪個(gè)方法好一點(diǎn)
            #include <iostream>

            bool test(int total, int level)
            {
            if (level==0)
            return true;

            if ((total-1)%5!=0)
            return false;

            total=(total-1)/5 *4;
            return test(total,level-1);
            }

            bool test2(int iGet,int level,int& beforGet)
            {
            beforGet=iGet*5+1;
            if (level==5)
            return true;

            if ((beforGet%4)!=0)
            return false;

            iGet=beforGet/4;
            return test2(iGet,level+1,beforGet);
            }

            int main(int argc,char*argv[])
            {
            int i=1;
            int total;
            for (;i<10000 ;++i)
            {
            if (test2(i,1,total))
            {
            std::cout<<total<<std::endl;
            // break;
            }
            }
            for (i=0;i<10000 ;++i)
            {
            if (test(i,5))
            {
            std::cout<<i<<std::endl;
            // break;
            }
            }

            return 0;
            }
              回復(fù)  更多評(píng)論
              

            # re: 五個(gè)小矮人分桃子-一道小學(xué)生的作業(yè)題目 2010-10-17 21:04 666
            在森林里住著五個(gè)小矮人,一天他們從山上采來(lái)一堆野果,可怎么也分不公平,就都去睡覺(jué)了。到了半夜,有一個(gè)小矮人偷偷地起來(lái),在這堆野果里拿出一個(gè)扔了,剩下的野果正好可分成5等份,他拿了其中的一分藏了起來(lái),又睡覺(jué)去了。接著,第二個(gè)小矮人也起來(lái)了,也扔了一個(gè)野果。又恰好分成五等份,也拿了其中一份藏了起來(lái),又去睡覺(jué)了。以后另外3人也一一照樣扔掉了一個(gè)野果,還能分成5等份......原來(lái)這堆野果至少有多少個(gè)呢?李永莉你好:我來(lái)還原一下有3121個(gè)野果,第一個(gè)人去分時(shí)剩(3121-1)×4÷5=2496 第二個(gè)人去分時(shí)剩(2496-1)×4÷5=1996 第三個(gè)人去分時(shí)剩(1996-1)×4÷5=1596 第四個(gè)人去分時(shí)剩(1596-1)×4÷5=1276 第五個(gè)人去分時(shí)拿走了(1276-1)÷5=255 謝謝你

              回復(fù)  更多評(píng)論
              

            # re: 五個(gè)小矮人分桃子-一道小學(xué)生的作業(yè)題目 2010-12-06 16:49 wu4long
            暈了,難道不能先計(jì)算他們的公式.然后簡(jiǎn)單迭代一下.后面就好算了.
            設(shè)總數(shù)為a, 第一次為a1, 第二次a2,依次類推,最后一個(gè)小猴子藏起來(lái)的為a5.

            a1 = (a-1)/5
            a2 = (4a1 -1)/5
            a3 = (4a2 -1)/5
            a4 = (4a3-1)/5
            a5 = (4a4-1)/5

            a = a1 + a2 + a3 + a4 + a5 + 5 + 4a5
            迭代: 算得
            a = 12 a5 + 8 + 53(a5 + 1)/256

            明顯 53 為素?cái)?shù), 所以 必然 a5 = 256* n - 1. (n 為自然數(shù))

            這時(shí),這段程序就很簡(jiǎn)單了. 呵呵
            a5 = 256* 1 -1 = 255
            a = 12 * a5 + 8 + 53(a5+1)/256 = 3121.


              回復(fù)  更多評(píng)論
              

            国产69精品久久久久观看软件| 97精品伊人久久久大香线蕉| 亚洲AV日韩精品久久久久久久| 久久婷婷激情综合色综合俺也去| 久久伊人五月丁香狠狠色| 亚洲va国产va天堂va久久| 伊人丁香狠狠色综合久久| 99久久做夜夜爱天天做精品| 国产精品一区二区久久精品| 色悠久久久久久久综合网| 成人妇女免费播放久久久| 伊人久久一区二区三区无码| 国产精品一区二区久久国产| 午夜精品久久影院蜜桃| 日韩精品国产自在久久现线拍| 久久久久久久精品妇女99| 久久久久久国产精品免费免费| 久久久久久久久久久久中文字幕| 热久久最新网站获取| 97久久精品人人澡人人爽| 国产精品视频久久久| 伊人精品久久久久7777| 亚洲第一永久AV网站久久精品男人的天堂AV | 久久成人小视频| 久久996热精品xxxx| 99re久久精品国产首页2020| 伊人久久大香线蕉AV色婷婷色| 久久久久久国产a免费观看不卡| 久久婷婷综合中文字幕| 国内精品久久国产大陆| 91久久精品91久久性色| 久久亚洲精品无码AV红樱桃| 日韩精品久久久肉伦网站 | 爱做久久久久久| 99久久国产综合精品五月天喷水| 日韩精品久久久久久| 亚洲乱亚洲乱淫久久| 狠狠色伊人久久精品综合网| 国产精品va久久久久久久| 久久天天躁狠狠躁夜夜2020| 女同久久|