<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    春風(fēng)博客

    春天里,百花香...

    導(dǎo)航

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    統(tǒng)計(jì)

    公告

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

    Locations of visitors to this page

    常用鏈接

    留言簿(11)

    隨筆分類(224)

    隨筆檔案(126)

    個(gè)人軟件下載

    我的其它博客

    我的鄰居們

    最新隨筆

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    #

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

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

    代碼如下:

    package com.sitinspring;

    /**
     * 求階乘數(shù)中尾后零的個(gè)數(shù)
     * 如10!的尾后零的個(gè)數(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的個(gè)數(shù)為:"+sum);
        }

        
        
    /**
         * 取得除數(shù)在被除數(shù)中的可整除次數(shù),如5在25中的可整除個(gè)數(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ù)階乘,但很快會(huì)溢出,擴(kuò)大int為long也很快會(huì)溢出,放在這里只是做個(gè)演示
         * 
    @param n
         * 
    @return
         
    */

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

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

        }

    }

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

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

    動(dòng)態(tài)代理機(jī)制初探

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

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

    程序員之路探究

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

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

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

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

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


    一。左菜單右內(nèi)容的實(shí)現(xiàn)。
    本例中使用一個(gè)虛表格實(shí)現(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部分設(shè)置代碼。
    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://m.tkk7.com/Files/sitinspring/PressButtonMenu20080523130024.rar 

    以上

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

    通用化Web表單驗(yàn)證方式的改進(jìn)方案

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

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

    如此做完后,我認(rèn)為原先的問(wèn)題基本得到解決了。下面請(qǐng)看具體代碼  閱讀全文

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

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

         摘要: 對(duì)于實(shí)現(xiàn)文件上傳功能來(lái)說(shuō),Commons-fileupload組件是一個(gè)不錯(cuò)的選擇,本文使用它實(shí)現(xiàn)了單個(gè)文件及多個(gè)文件上傳,這里將實(shí)現(xiàn)過(guò)程寫(xiě)出來(lái)與大家共享。  閱讀全文

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

    三種權(quán)限設(shè)計(jì)方案的歸納和比較

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

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

    使用全排列方法解九宮格問(wèn)題

    下面的方法能解出九宮格,但對(duì)于更高階只有理論可能性,因?yàn)楹臅r(shí)太長(zhǎng),不能作為通用解決方案。

    輸出:
    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;
                }
                
                
    // 查看是否縱橫對(duì)角線值都相等
                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;
                }
            }
            
            
    // 對(duì)角線
            sum=0;
            
    for(i=0;i<n;i++){
                sum
    +=arr2[i][i];        
            }
            
            
    if(sum!=average){
                
    return;
            }
            
            
    // 對(duì)角線
            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 閱讀(2092) | 評(píng)論 (1)編輯 收藏

    JFreeChat四種圖表的繪制例程

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

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

    表單驗(yàn)證方式的通用化

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

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

    僅列出標(biāo)題
    共13頁(yè): First 上一頁(yè) 2 3 4 5 6 7 8 9 10 下一頁(yè) Last 
    sitinspring(http://m.tkk7.com)原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處.
    主站蜘蛛池模板: 亚洲真人无码永久在线| 亚洲日本久久久午夜精品| 在线视频亚洲一区| 成年黄网站色大免费全看| 中文字幕亚洲综合久久2| 免费看搞黄视频网站| 亚洲六月丁香六月婷婷蜜芽| 亚洲人成网站在线观看播放| 最近中文字幕大全免费版在线| 亚洲人成网站色在线入口| 免费视频精品一区二区| 亚洲午夜激情视频| 丝瓜app免费下载网址进入ios| 亚洲区小说区图片区QVOD| 亚洲成AV人片在WWW色猫咪| 99久久国产免费-99久久国产免费| 久久99国产亚洲精品观看| 97av免费视频| 亚洲风情亚Aⅴ在线发布| 免费在线观看黄色毛片| 国产精品免费久久久久久久久 | 久久久久亚洲AV无码麻豆| 亚洲a级片在线观看| 成年女人毛片免费视频| MM1313亚洲精品无码久久| 久久久精品国产亚洲成人满18免费网站| 本免费AV无码专区一区| 亚洲毛片一级带毛片基地| 天天干在线免费视频| 72pao国产成视频永久免费| 亚洲成在人天堂一区二区| 黄页网站免费观看| 日本高清不卡中文字幕免费| 国产精品亚洲一区二区三区在线| 最近免费中文字幕大全免费| 亚洲欧美日韩综合久久久| 亚洲国产日韩在线视频| 成年男女免费视频网站| 国产又黄又爽胸又大免费视频| 亚洲不卡在线观看| 久久精品国产亚洲Aⅴ蜜臀色欲|