春風博客

          春天里,百花香...

          導航

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          統(tǒng)計

          公告

          MAIL: junglesong@gmail.com
          MSN: junglesong_5@hotmail.com

          Locations of visitors to this page

          常用鏈接

          留言簿(11)

          隨筆分類(224)

          隨筆檔案(126)

          個人軟件下載

          我的其它博客

          我的鄰居們

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          #

          求階乘數(shù)中尾后零的個數(shù)

          主要是利用了10=2*5,一個數(shù)中5的因子個數(shù)必定比2的因子個數(shù)少的原理。

          代碼如下:

          package com.sitinspring;

          /**
           * 求階乘數(shù)中尾后零的個數(shù)
           * 如10!的尾后零的個數(shù)為2
           * 
          @author sitinspring(junglesong@gmail.com)
           * 
          @since 2008-6-10 上午11:57:45
           * @vsersion 1.00 創(chuàng)建 sitinspring 2008-6-10 上午11:57:45
           
          */

          public class PowerZeroCount{
              
          public static void main(String[] args){
                  
          int sum=0;
                  
          for(int i=1;i<=100;i++){
                      
          int count=getDivisorCount(i,5);
                      sum
          +=count;
                  }

                  
                  System.out.println(
          "100階乘尾后0的個數(shù)為:"+sum);
              }

              
              
          /**
               * 取得除數(shù)在被除數(shù)中的可整除次數(shù),如5在25中的可整除個數(shù)為2
               * 
          @param Dividend 被除數(shù)
               * 
          @param divisor 除數(shù)
               * 
          @return
               
          */

              
          public static int getDivisorCount(int Dividend,int divisor){
                  
          if(Dividend==0){
                      
          return 0;
                  }

                  
                  
          int count=0;
                  
                  
          if(Dividend % divisor==0){
                      count
          =1;
                      count
          +=getDivisorCount(Dividend/divisor,divisor);
                  }

                  
                  
          return count;
              }

              
              
          /**
               * 求某數(shù)階乘,但很快會溢出,擴大int為long也很快會溢出,放在這里只是做個演示
               * 
          @param n
               * 
          @return
               
          */

              
          public static int power(int n){
                  
          if(n<=1){
                      
          return 1;
                  }

                  
          else{
                      
          return n*power(n-1);
                  }

              }

          }

          輸出:
          100階乘尾后0的個數(shù)為:24

          posted @ 2008-06-10 12:14 sitinspring 閱讀(641) | 評論 (0)編輯 收藏

          動態(tài)代理機制初探

               摘要: Spring的AOP支持可以被用于從系統(tǒng)核心邏輯中分離交叉業(yè)務(cross-business)如日志,事務管理和安全等,使用AOP,你可以用各種功能層來覆蓋核心業(yè)務層,這些功能層可以靈活的應用到你的系統(tǒng)中,甚至核心業(yè)務層都不知道它們的存在,這是一個強大的概念。
          AOP(aspect-oriented programming)的核心就是動態(tài)代理,掌握它對于理解AOP尤為重要,猶如反射對理解IoC一樣。
            閱讀全文

          posted @ 2008-05-28 00:06 sitinspring 閱讀(2374) | 評論 (3)編輯 收藏

          程序員之路探究

               摘要: 本文將試圖討論一些決定一個程序員一生的核心的東西,這是個人對程序員生涯的一孔之見,只代表作者的個人想法,其中疏漏甚至錯誤之處在所難免,希望大家多提寶貴意見。

          前言
          豐厚的薪水,高端的職位和有成就感的事業(yè)是人人都想要的,而這些都取決于你每天的認真工作,努力學習和靈活做人上。日子就像一塊塊磚,你就像是一個泥瓦匠每天在堆砌著你的人生,最終砌出一個宏偉的大廈或是一幢低矮的小屋甚至是堆成一堆瓦礫全取決于你自己。  閱讀全文

          posted @ 2008-05-27 11:05 sitinspring 閱讀(4709) | 評論 (14)編輯 收藏

          按鈕按下效果的左側(cè)導航欄實現(xiàn)

          在“http://neic.usgs.gov/neis/qed/”看到了一個不錯的按鈕按下效果的左側(cè)導航欄,自己模擬實現(xiàn)了一個,效果如下,目前在ie下效果可以,但FireFox下走形,以后再調(diào)吧:


          一。左菜單右內(nèi)容的實現(xiàn)。
          本例中使用一個虛表格實現(xiàn)了左右兩列的效果,代碼如下:
          <body>
              
          <div id="bodyDiv">
                  
          <div id="header">
                      
          <jsp:include page="/web/page/branch/header.jsp"/>
                  
          </div>
                  
          <div id="content">
                      
          <table border="0" cellspacing="0" cellpadding="0" width="100%" height="100%">
                          
          <tr>
                              
          <td width="200" valign="top" bgcolor="#d4e4f0">
                                  
          <div id="leftMenu">
                                      
          <jsp:include page="/web/page/branch/menubar.jsp"/>
                                  
          </div>
                              
          </td>
                              
          <td>
                                  
          <div id="rightContent">
                                      內(nèi)容。。。。
                                  
          </div>
                              
          </td>
                          
          </tr>
                      
          </table>
                  
          </div>
                  
          <div id="footer">
                      
          <jsp:include page="/web/page/branch/footer.jsp"/>
                  
          </div>
              
          </div>
          </body>

          二。CSS部分設置代碼。
          body{
              margin
          :2px;
              text-align
          :center;
              background
          :#7b869a;
          }


          #bodyDiv
          {
              margin
          :0 auto;
              text-align
          :left;
              background
          :#ffffff;
          }


          #header
          {
              height
          :100px;
          }


          #content
          {
              height
          :500px;
          }


          #rightContent
          {
              height
          :500px;
              padding
          :20px;
          }


          #leftMenu
          {
              height
          :500px;
              background
          :#d4e4f0;
              border-bottom
          :0px solid #000000;
              border-left
          :0px solid #000000;
              border-right
          :0px solid #000000;
              border-top
          :0px solid #bad5e8;
          }


          #footer
          {
              clear
          :both;
              background
          :#7b869a;
          }


          ul.pressEffectUl
          {    
              color
          : #000000; 
              margin
          :0px;    
              padding
          :0px;
              list-style-type
          :none;
              background
          :#d4e4f0;
          }


          ul.pressEffectUl a
          {
              padding-left
          :20px;
              text-decoration
          :none;
              color
          :#8d4f10;
              width
          :200px;
              border-left
          :0px solid #000000;
              border-right
          :0px solid #000000;
              border-top
          :1px solid #ffffff;
              border-bottom
          :1px solid #bad5e8;
          }


          ul.pressEffectUl a.currentLink
          {
              padding
          :2px;
              padding-left
          :20px;
              text-decoration
          :none;
              color
          :#000000;
              background
          :#ffffff;
              width
          :200px;
              border-left
          :0px solid #000000;
              border-right
          :0px solid #000000;
              border-top
          :1px solid #ffffff;
              border-bottom
          :0px solid #bad5e8;
          }


          ul.pressEffectUl a:hover
          {
              color
          :#000033;
              background
          :#e1effa;
              border-left
          :0px solid #000000;
              border-right
          :0px solid #000000;
              border-top
          :1px solid #e1effa;
              border-bottom
          :1px solid #e1effa;
          }


          h1 
          {
              font-size
          : 18px; 
              margin
          : 10px 0px 5px; 
              color
          : #eeeeee; 
              text-align
          : center;
          }


          h2 
          {
              font-size
          : 24px; 
              margin
          : 10px 0px 5px; 
              color
          : #000000; 
              text-align
          : center;
          }


          .feedbackShow
          {
          visibility
          : visible;
          }


          .feedbackHide
          {
          visibility
          : hidden;
          }

          三。代碼下載;
          http://www.aygfsteel.com/Files/sitinspring/PressButtonMenu20080523130024.rar 

          以上

          posted @ 2008-05-23 13:16 sitinspring 閱讀(4391) | 評論 (0)編輯 收藏

          通用化Web表單驗證方式的改進方案

               摘要: 在上文的表單驗證解決方案中,有這樣幾個問題:
          1。頁面中存在自定義標簽,這通不過W3C驗證。
          2。自定義標簽不能寫在Struts標簽中,造成此解決方案在Struts工程中不適用。
          3。驗證的方式和頁面內(nèi)容混合在一起,沒有分開。
          4。原反饋信息span的id必須符合一定規(guī)范,這是額外的負擔。

          為了解決這些問題,我采取了如下步驟:
          1。建立一種數(shù)據(jù)結構,讓它容納文本框id,反饋span的id,驗證正則表達式,是否必須輸入等四個信息。這樣頁面就不會混雜自定義標簽,w3c驗證和struts標簽不支持的問題就解決了。
          2。建立一個包含多個這種數(shù)據(jù)結構的數(shù)組,其中元素與要驗證的文本域一一對應。此數(shù)組在需要驗證時建立。這里雖然要多些一些JS代碼,但驗證信息更集中更容易修改了。
          3。需要驗證時取得數(shù)組元素,挨個驗證即可,需要的信息都可以從數(shù)組元素中取得。整個過程可以庫化通用化,頁面不需要寫驗證。

          如此做完后,我認為原先的問題基本得到解決了。下面請看具體代碼  閱讀全文

          posted @ 2008-05-21 14:09 sitinspring 閱讀(3787) | 評論 (7)編輯 收藏

          使用commons-fileupload實現(xiàn)單個和多個文件上傳

               摘要: 對于實現(xiàn)文件上傳功能來說,Commons-fileupload組件是一個不錯的選擇,本文使用它實現(xiàn)了單個文件及多個文件上傳,這里將實現(xiàn)過程寫出來與大家共享。  閱讀全文

          posted @ 2008-04-12 14:16 sitinspring 閱讀(34042) | 評論 (13)編輯 收藏

          三種權限設計方案的歸納和比較

               摘要: 權限設計是很多系統(tǒng)重要的組成部分,主要用于控制功能和流程,本文將幾種常見的權限設計方案(權限系統(tǒng)的名都是自己起的)的基本設計寫出來,其中不恰當處還請大家指出,我們來討論一下.  閱讀全文

          posted @ 2008-04-10 10:20 sitinspring 閱讀(17715) | 評論 (15)編輯 收藏

          使用全排列方法解九宮格問題

          下面的方法能解出九宮格,但對于更高階只有理論可能性,因為耗時太長,不能作為通用解決方案。

          輸出:
          2    7    6    
          9    5    1    
          4    3    8   


          package com.sitinspring;

          public class SquarePuzzle{
              
          /**
               * 階數(shù)
               
          */
              
          private int n;
              
              
          /**
               * 方陣數(shù)組
               
          */
              
          private Integer[] arr;
              
              
          /**
               * 平均值
               
          */
              
          private int average;
              
              
          public SquarePuzzle(int n){
                  
          this.n=n;
                  
                  
          // 建立數(shù)組并得到平均值
                  arr=new Integer[n*n];
                  
                  average
          =0;
                  
          for(int i=1;i<=n*n;i++){
                      arr[i
          -1]=i;
                      average
          +=i;
                  }
                  average
          =average/n;
                  
                  
          // 遞歸查看
                  permutation(arr,0,arr.length);
              }
              
              
          private void permutation(Integer[] arr,int start,int end){
                  
          if(start<end+1){
                      permutation(arr,start
          +1,end);
                      
                      
          for(int i=start+1;i<end;i++){
                          Integer temp;
                          
                          temp
          =arr[start];
                          arr[start]
          =arr[i];
                          arr[i]
          =temp;
                          
                          permutation(arr,start
          +1,end);
                          
                          temp
          =arr[i];
                          arr[i]
          =arr[start];
                          arr[start]
          =temp;
                      }
                  }
                  
          else{
                      
          /*for(int i=0;i<end;i++){
                          System.out.print(arr[i]);
                      }
                      System.out.print("\n");
          */
                      
                      
          int i,sum=0;
                      
                      
          for(i=0;i<n;i++){
                          sum
          +=arr[i];
                      }
                      
                      
          if(sum!=average){
                          
          return;
                      }
                      
                      
          // 查看是否縱橫對角線值都相等
                      checkAndPrint(arr);
                  }
              }
              
              
          private void checkAndPrint(Integer[] arr){
                  Integer[][] arr2
          =new Integer[n][n];
                  
          int i,j,sum;
                  
                  
          for(i=0;i<n;i++){
                      
          for(j=0;j<n;j++){
                          arr2[i][j]
          =arr[i*n+j];
                      }
                  }
                  
                  
          // 橫
                  for(i=0;i<n;i++){
                      sum
          =0;
                      
          for(j=0;j<n;j++){
                          sum
          +=arr2[i][j];
                      }
                      
                      
          if(sum!=average){
                          
          return;
                      }
                  }
                  
                  
          // 縱
                  for(i=0;i<n;i++){
                      sum
          =0;
                      
          for(j=0;j<n;j++){
                          sum
          +=arr2[j][i];
                      }
                      
                      
          if(sum!=average){
                          
          return;
                      }
                  }
                  
                  
          // 對角線
                  sum=0;
                  
          for(i=0;i<n;i++){
                      sum
          +=arr2[i][i];        
                  }
                  
                  
          if(sum!=average){
                      
          return;
                  }
                  
                  
          // 對角線
                  sum=0;
                  
          for(i=0;i<n;i++){
                      sum
          +=arr2[i][n-i-1];        
                  }
                  
                  
          if(sum!=average){
                      
          return;
                  }
                  
                  
          // 最終打印
                  for(i=0;i<n;i++){
                      
          for(j=0;j<n;j++){
                          System.out.print(arr2[i][j]
          +"\t");;
                      }
                      
                      System.out.print(
          "\n");;
                  }
                  System.out.print(
          "\n");;
                  System.exit(
          0);
              }
              
              
          public static void main(String[] args){
                  
          new SquarePuzzle(3);
              }
          }

          posted @ 2008-04-08 22:16 sitinspring 閱讀(2097) | 評論 (1)編輯 收藏

          JFreeChat四種圖表的繪制例程

               摘要: 本文書寫了使用JFreeChart生成平面餅圖,3D餅圖,折線圖和柱狀圖的示例代碼,并附有代碼下載.  閱讀全文

          posted @ 2008-04-08 13:00 sitinspring 閱讀(3605) | 評論 (6)編輯 收藏

          表單驗證方式的通用化

               摘要: 在上一篇“Web頁面表單域驗證方式的改進“中,我們通過把驗證法則(正則表達式和是否必填字段)寫在表單域中,將驗證過程和驗證法則成功的分離,從而減少了重復代碼,使驗證變得簡單易行,在實際使用中,我們可以把驗證過程放在一個JS文件中,對于全輸入驗證界面,在頁面的表單驗證部分只需要調(diào)用其中的checkForm函數(shù)就能進行有效驗證,頁面上不再需要書寫重復性高的JS驗證代碼;對于復雜的表單,比如其中含有復選框或是需要兩個文本框比較的地方,這種方法也可讓你不寫通用驗證代碼而把主要精力放在特殊的驗證上。這些能減輕不少工作量,讓繁瑣的工作變得輕松愉快起來。  閱讀全文

          posted @ 2008-04-07 21:41 sitinspring 閱讀(2343) | 評論 (7)編輯 收藏

          僅列出標題
          共13頁: First 上一頁 2 3 4 5 6 7 8 9 10 下一頁 Last 
          sitinspring(http://www.aygfsteel.com)原創(chuàng),轉(zhuǎn)載請注明出處.
          主站蜘蛛池模板: 华池县| 马鞍山市| 离岛区| 云和县| 枣庄市| 扬州市| 花莲市| 乳山市| 镇坪县| 东宁县| 临泉县| 扶沟县| 孟津县| 华阴市| 贡觉县| 靖西县| 宜丰县| 沛县| 安新县| 高陵县| 淅川县| 文安县| 晋宁县| 漳浦县| 巴楚县| 建阳市| 合作市| 博白县| 唐山市| 靖安县| 西和县| 建昌县| 衡东县| 弥渡县| 永春县| 郸城县| 乐业县| 什邡市| 德阳市| 溆浦县| 周口市|