Oo緣來是你oO


          posts - 120,comments - 125,trackbacks - 0

          ?????????????????????????????????? 一道很簡單的老問題,求更好的解決方法

          ??????????????????????????????????????????? 馬嘉楠?? 2006-11-08


          今天在一個論壇看到有人問一個很老的問題。

          10個人圍一圈,編號為1的人開始數數,數到能被3整除的編號的人退出,然后再往下數。問最后剩幾個人?
          如第一圈后:3,6,9退出,還剩7人下一圈從第11開始數。求算法


          看到過這個題目很多次,從來都沒有仔細想過寫過代碼。

          下面的方法是我今天看到題目后的第一反應,應該有更好的吧。

          你們都是怎么做的啊,學習一下,謝謝啦!
          我算法很弱的。。。


          一、數組實現

          1.??? for循環初始化每個人的值為0

          2.??? 開始報數,如果所報之數能被3整除,設置此人的值為1

          3.??? 如此循環下去,直到只有一個人的值為0

          4.??? 獲得此人在數組中的下標,加1之后輸出,即為所求


          package ?Test;


          public ? class
          ?Main?{
          ????
          public ? static ? void
          ?main(String[]?args)?{
          ????????
          int []?person? = ? new ? int [ 10
          ];
          ????????
          for ?( int ?i? = ? 0 ;?i? < ?person.length;?i ++
          )?{
          ????????????person[i]?
          = ? 0
          ;
          ????????}
          ????????
          for ?( int ?j? = ? 0 ,?count? = ? 0 ,?leave? = ?person.length;?leave? != ? 1 ;?j? = ?(j? + ? 1
          ) % (person.length))?{
          ????????????
          if ?(person[j]? == ? 1
          )?{
          ????????????????
          continue
          ;
          ????????????}?
          else
          ?{
          ????????????????count
          ++
          ;
          ????????????????
          if ?(count? % ? 3 ? == ? 0
          )?{
          ????????????????????person[j]?
          = ? 1
          ;
          ????????????????????leave
          --
          ;
          ????????????????}
          ????????????}
          ????????}
          ????????
          for ?( int ?i? = ? 0 ;?i? < ?person.length;?i ++
          )?{
          ????????????
          if ?(person[i]? == ? 0
          )?{
          ????????????????System.out.println(
          " The?last?person?is? " ? + ?(i? + ? 1
          ));
          ????????????????
          return
          ;
          ????????????}
          ????????}
          ????}
          }




          馬嘉楠
          jianan.ma@gmail.com

          posted on 2006-11-08 18:05 馬嘉楠 閱讀(419) 評論(0)  編輯  收藏 所屬分類: SoureCode
          主站蜘蛛池模板: 徐水县| 桃园市| 巩义市| 合山市| 沭阳县| 民勤县| 巴林右旗| 英山县| 资兴市| 阳东县| 田阳县| 广州市| 海原县| 揭西县| 高碑店市| 延安市| 浏阳市| 澜沧| 河池市| 页游| 古田县| 噶尔县| 霞浦县| 桂平市| 汤原县| 株洲县| 天水市| 永修县| 盐边县| 广宗县| 嘉荫县| 钟山县| 那曲县| 红原县| 邯郸市| 科技| 孟连| 英山县| 大余县| 北票市| 安多县|