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

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

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

    Dict.CN 在線詞典, 英語學習, 在線翻譯

    都市淘沙者

    荔枝FM Everyone can be host

    統計

    留言簿(23)

    積分與排名

    優秀學習網站

    友情連接

    閱讀排行榜

    評論排行榜

    遞歸實現類似騰訊的積分等級處理 (原創)

    由于最近做積分系統剛好需要一個類似騰訊qq等級的方式:比如一個太陽等級A表示1000分,一個月亮B表示800分,另外一個星星C表示100分;則若用戶的積分為2950則是AABC表示即可,若用戶積分為1950則用ABC即可,若用戶積分為2150則用AAC即可,若用戶積分為1150則用AC即可,以此類推,可以用遞歸來解決這類問題,代碼如下
    import java.util.ArrayList;
    import java.util.List;

    public class BeanShellDemo {

        
    static StringBuffer sb = new StringBuffer();

        
    /**
         * point表示用戶的總積分,levellist表示積分等級列表;<br>
         * 在本例子中需要說明的是積分等級列表是要按順序的
         * 
    @param point
         * 
    @param leverlist
         * 
    @return
         
    */

        
    public static String getMyLand(int point, List levellist) {

            
    int starnum = 0;
            
    int leftpoint = 0;
            
    int maxlevel = Integer.parseInt(levellist.get(levellist.size() - 1)
                    .toString());
    //列表中的最大等級
            int minlevel = Integer.parseInt(levellist.get(0).toString());//列表中的最小等級

            
    if(levellist.size() > 0 && point< minlevel){
                
    return "積分不夠最小等級,則默認為最低的等級"+minlevel;
            }
    else
            
    if (levellist.size() > 0 && point >= minlevel) {    //當用戶積分小于最小等級值則不做處理

                
    if (point < maxlevel && levellist.size() > 0// 小于最大等級則
                    levellist.remove(levellist.size() - 1);     // 將當前list中的最大等級移除 
                    leftpoint = point;                          //(注意因為例子中的list是由小到大排序的,亂順則要另外處理)
                }
     else {
                    starnum 
    = point / maxlevel;                 //取商 比如280/6 = 46
                    leftpoint = point % maxlevel;               //取模 比如280%6 = 4
                    sb.append("" + starnum + "個等級為" + maxlevel + "的頭銜" + "#");
                }

                getMyLand(leftpoint, levellist);
            }


            
    return sb.toString();
        }


        
    public static void main(String[] args) {

            
    int leverarray[] = 501003005001000 };
            List
    <Integer> levellist = new ArrayList<Integer>();
            
    for (int i = 0; i < leverarray.length; i++{
                levellist.add(leverarray[i]);
            }
            
            
    int userpoint = 20;
            
    int userpoint2 = 2190;
            System.out.println(getMyLand(userpoint, levellist));
            System.out.println(getMyLand(userpoint2, levellist));

        }

    }



    執行結果如:
    積分不夠最小等級,則默認為最低的等級50
    有2個等級為1000的頭銜#有1個等級為100的頭銜#有1個等級為50的頭銜#

    通過其他方法對返回的串做處理即可,有好方法的朋友歡迎溝通!!

    posted on 2008-01-15 23:40 都市淘沙者 閱讀(490) 評論(0)  編輯  收藏 所屬分類: Java Basic/Lucene/開源資料

    主站蜘蛛池模板: 成年人免费视频观看| 国产亚洲精久久久久久无码77777| 亚洲av色香蕉一区二区三区| 免费人成在线观看视频播放| 久9久9精品免费观看| 国产精品亚洲午夜一区二区三区| 九月婷婷亚洲综合在线| 久久精品国产免费| 亚洲精品乱码久久久久久V| 日本亚洲欧洲免费天堂午夜看片女人员 | 四虎成人精品在永久免费| 两个人日本免费完整版在线观看1 两个人的视频www免费 | 德国女人一级毛片免费| 黄色网页在线免费观看| 中日韩亚洲人成无码网站| 亚洲精品美女久久久久99| 亚洲中文无码永久免费| a视频在线观看免费| 亚洲精品无码aⅴ中文字幕蜜桃| 亚洲精品无码永久中文字幕| 永久免费看mv网站入口| 免费国产污网站在线观看15| 麻豆安全免费网址入口| 久久狠狠爱亚洲综合影院| 亚洲精品无码不卡在线播放HE| 国产人在线成免费视频| 老汉色老汉首页a亚洲| 免费a级毛片高清视频不卡| 无码一区二区三区亚洲人妻| 亚洲精品无码mv在线观看网站| 四虎1515hh永久久免费| 大桥未久亚洲无av码在线| 激情97综合亚洲色婷婷五| 最近中文字幕免费mv在线视频| 免费国产va在线观看| 亚洲天堂一区在线| 久久国产亚洲精品麻豆| 国产国拍亚洲精品福利| 免费观看国产精品| 拍拍拍又黄又爽无挡视频免费| 最近中文字幕无免费|