如题:我想了下,自己也在研究下别人的代码。
但是,那些都只是写了程序,没写出思路。看起来特吃力不知道哪位大牛也给写段,主要求思路~~

解决方案 »

  1.   

    http://topic.csdn.net/u/20110525/09/c725b2b9-bf31-497c-add3-ca2220ec73dc.html?44081
      

  2.   

    我靠,你们都很喜欢逛BBS啊~~
      

  3.   

    呵呵,早点休息吧。其实你的算法功夫是不错的。但是今天好像不在状态,哈哈。话说我不懂算法的,也就是将就套用一点编程用到的基本算法而已,而且有了 linq,似乎这些都用不到了。
    只能在论坛寻一点算法题锻炼下思维。
      

  4.   

    http://blog.csdn.net/CQBSBJIANXY/archive/2009/03/26/4025363.aspx
    笨笨简单
      

  5.   


    这个不行.效率太低了. 楼主有时间去我博客看看,前2天刚发布的class功能很强大
      

  6.   

    每次看到类似的帖子我都只想贴下面这一段代码public string GetMoney(double dd)
            {
                string s = dd.ToString("#L#E#D#C#K#E#D#C#J#E#D#C#I#E#D#C#H#E#D#C#G#E#D#C#F#E#D#C#.0B0A");
                string d = Regex.Replace(s, @"((?<=-|^)[^1-9]*)|((?'z'0)[0A-E]*((?=[1-9])|(?'-z'(?=[F-L\.]|$))))|((?'b'[F-L])(?'z'0)[0A-L]*((?=[1-9])|(?'-z'(?=[\.]|$))))", "${b}${z}");
                string value = Regex.Replace(d, ".", delegate(Match m)
                  { return "负元空零壹贰叁肆伍陆柒捌玖空空空空空空空分角拾佰仟萬億兆京垓秭穰"[m.Value[0] - '-'].ToString(); });
                return value;
            }
      

  7.   

    public class Num2Chinese
    {
    public function Num2Chinese()
    {
    }

            /**大写数字数组**/
            private static var cnChar:Array = ['零','壹','贰','叁','肆','伍','陆','柒','捌','玖'];
            
            /**金额单位数组**/
            private static var partInt:Array  = ['元','拾','佰','仟','万','拾','佰','仟','亿','拾','佰','仟','万'];
            
            /**金额的小数部分单位数组**/
            private static var partDecimal:Array  = ['角','分'];

    /**
     * 
     * 数字转换为大写的中文
     **/
    public static function  translate(num:Number, zeroFlag:Boolean=true):String{
    /**不是数字返回“零元”**/
    if(!num)
    {
    return zeroFlag ? '零元' : '元';
    }

    /**是否是负数**/
                var isPositive:Boolean = (num == Math.abs(num));
                
                /**用小数点劈开,将整数和小数存储到数组中**/
                var numPart:Array = (num+'').split('.');
                
                /**是否有小数**/
                var hasDecimal:Boolean = (numPart.length > 1);
                
                /**获得小数**/
                var decimal:String = (hasDecimal ? numPart[1] : '0');
                
                /**存储返回的大写**/
             var cn:String = '';
                
                /**如果是负数,在大写前面加上“负”字**/
                if(!isPositive)  
                {
                 cn += '负';
                }
                
                /******************************整数部分处理开始******************************************/
                /**获得整数部分**/
                num = Math.abs(numPart[0]);
                /**整数部分不能超过16位**/
                if(String(num).length > 16) 
                {
                 return '超过最大位数';
                }
                 
                /**用空格‘’劈开整数,存储到数组中**/
                var numArr:Array = num.toString().split('');
                /***整数的位数,数组的长度***/
                var l:Number = numArr.length;
                if(l%28 >= 14)  
                {
                 return '超过最大位数';
                }
                
                /**
                 * 循环处理 
                 **/
                for (var j:Number = 0 ; j < l ; j++)
                {
                 /**获得数组中的数字**/
             var c:Number = Number(numArr[j]); 
    /**将数字转换为相应大写**/        
                    cn += cnChar[c];
                    /**在大写数字后加上相应的单位**/
                    cn += partInt[l-j-1];
                }
                /******************************整数部分处理结束******************************************/
                
                /******************************小数部分处理开始******************************************/
                /**如果有小数**/
                if(hasDecimal){
                 /**获得小数的第一位,并且转换为大写**/
                 var cs:String = cnChar[decimal.substr(0,1)];
                 /**连接起来**/
                 cn += cs;
                 /**加上单位“角”**/
                    cn += partDecimal[0];
                    
                    /**如果小数位数超过1位**/
                    if(decimal.length>1){
                     /**获得小数的第二位**/
                 var ns:String = decimal.substr(1,1);
                 /**转换为大写**/
                cn += (ns ? cnChar[ns] : '');
                /**加上单位“分”**/
                cn += (ns? partDecimal[1] : '');
                    }
                }
                /******************************小数部分处理结束******************************************/ /******************************替换无用处理开始******************************************/
                cn = cn.replace('零零', '零');
                cn = cn.replace('零亿|亿万', '亿');
                cn = cn.replace(/零万/g, '万');
                cn = cn.replace(/零仟|零佰|零拾/g, '');
                
                cn = ((num==0 && numPart[1]=='00') || numPart[0] == '0') ? cn.replace(/零元/g, '零元') : cn.replace(/零元/g, '元');
                
                cn = cn.replace(/零角|零分/g, '');
                cn = cn.replace('负元', '负');
                
                var end:String = cn.substr((cn.length-1),1);
             cn =(end == '元' || end == '角') ? cn+'整' : cn;
             /******************************替换无用处理结束******************************************/
            
                return cn;
            } }